5 Ways To Animate A React App PDF
5 Ways To Animate A React App PDF
Animation in ReactJs app is a popular topic and there are many ways to create
different types of animations.Many developers create animation exclusively using css
and adding classes to HTML tags. This is a great way and you should use it. If you
want to create complex animations you can pay attention to GreenSock. GreenSock is
the most powerful animation platform. There are also a lot of libraries, components
for creating animation in React.
Let’s talk about them
1. CSS method
…………………….…
To view the repo, click here.
………………………
Of course the open source has much more animation libraries and components. I
would like to explore it. But this article will not contain the libraries. You will also
receive a bonus at the end of the article in the form of libraries which deserve your
attention.
1. CSS method
This method is one of the best for a simple animation. When you use it instead
of importing javascript libraries, your bundle remains small. And browser spends
fewer resources. These two points also largely impact app productivity. If you have a
simple animation and worry about the size of your bundle pay attention to this
method.
property with the same width. When we need to show the navigation we have to add
className="is-nav-open" for the wrapper and move the wrapper on margin-
left/translateX: 0;
And css styles:
Believe me, it’s necessary to use this method in most situations. We are better off
writing several css lines and triggering the className than importing big libraries
and implementing it in your projects. The users will be grateful to you that your
browser reproduces app quickly.
But sometimes, you have to use other methods. What other ways exist?Let’s have a
look at next method.
2. ReactTransitionGroup
This add-on component has been developed by guys from ReactJs community.
ReactTransitionGroup is easy to implement basic CSS animations and transitions.
• React Transition Group changes the classes when component lifecycle changes.
In turn, animated style should be described in CSS classes.
that you have to wrap the list in it and set transitionName props. Whenever the child
in CSSTransitionGroup is added or deleted it will get the animation styles.
If you set transitionName="example" props, the classes in the style sheets should start
with an example name.
You can see the basic usage ReactTransitionGroup version.
And this is everything you need. Of Course you need to add some logic.We should
describe two methods to the realization of our example contact list:
handleAdd — adding new contacts, it gets a random name and push it to array
state.items. (it uses random-name package for random name)
handleRemove — removing contact by index in the state.items array.
3️. React-animations
React-animations — the library is built on all animations with animate.css. It is easy
to use and has a lot of animation collections. React-animation works with any inline
style library that supports the use of objects to define keyframe animations, such as
Radium, Aphrodite or styled-components. I prefer to use the styled-components.
As soon as you’ve seen these animations you’ve realized where you could use them.
Let’s take a look at how this works. For example — Bounce animation.
The first thing you need in to import chosen animation from react-animations .
When the component is created you need to wrap up any HTML or the component
for animation.
Example:
There is some good solution for using this animation on scroll — react-animate-on-
scroll.
4️. React-reveal
React Reveal is an animation framework for React. It has basic animations such as
fade, flip, zoom, rotate and a lot of more advanced animations. It allows you to
control all animations with props, for example: the position, delay, distance, cascade
and many others. You can see them here. You can also use the custom css effects. Also
it has server side rendering and high order components. If you prefer to use
animation on scroll this framework for you. Check out how it works.
You’ve probably heard about Ant design so let’s consider its animation on their
landing page.
As you can see there are a lot of animated elements. I’d like to show you a short
version, because all elements have a similar animation. I chose the globe with a
green ball and one element, for example a red square, on the background. Our
animation would look like this.
I’ve used the TweenOne component in this animation but it needs the PathPlugin for
using the path in animation. It will work when you push the PathPlugin to
TweenOne.plugins .
The next step let’s describe the Basic animation parameters:
You don’t need to worry about last two parameters are more specific for this svg.
Next we’ll create an animation object. This object has 3 types of animation:
• track — an oval with the axis that has the loop styles and the rotate param.
You don’t need to worry about this code. You have to pay attention to TweenOne
component. Let us remind briefly, these components will be imported from rc-tween-
one . It’s used as basic components with base props and animation props. It is our
animation! Every TweenOne has it’s own animation rules as redSquare , track ,
greenBall .
It looks scaring. But in fact, you need to pay attention to these lines.
As you noticed, creating the animation with this method is a simple way. All you need
is to describe the animation rules and to transfer them to TweenOne component.
Conclusion
There are a lot of ways using animation. All of them require different approaches.
Today we have reviewed some decisions that you can use in your projects. Choose the
method which suits you
. . .
. . .
Thanks for Reading
Have fun, keep learning, and always keep coding.
Follow me on Medium & Linkedin.
. . .
5. React Quickly: Painless web apps with React, JSX, Redux, and GraphQL
Below you can see the bonus with a list of popular libraries for animation.
ReactJs libraries:
1. react-motion — A spring that solves your animation problems.
Javascript libraries:
1. GSAP — Ultra high-performance, professional-grade animation for the modern
web
9. granim.js — Create fluid and interactive gradient animations with this small
javascript library.
10. kute.js — KUTE.js is a native JavaScript animation engine featuring great code
quality, badass performance
11. TweenJs — A simple but powerful tweening / animation library for Javascript.
Part of the CreateJS suite of libraries.