
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
react-reveal
Advanced tools
React Reveal is an animation framework for React. It's MIT licensed, has a tiny footprint and written specifically for React in ES6. It can be used to create various cool reveal on scroll animations in your application. If you liked this package, don't forget to star the Github repository.
A number of simple effect examples:
Also, there are more complicated examples of animated form errors and a todo app.
react-reveal is regularly checked against googlebot in the Google Search Console to make sure that googlebot can see the content in the revealed elements.
For a full documentation please visit online docs.
In the command prompt run:
npm install react-reveal --save
Alternatively you may use yarn:
yarn add react-reveal
Import effects from React Reveal to your project. Lets try Zoom effect first:
import Zoom from 'react-reveal/Zoom';
Place the following code somewhere in your render method:
<Zoom>
<p>Markup that will be revealed on scroll</p>
</Zoom>
You should see zooming animation that reveals text inside the tag. You can change this text to any JSX you want. If you place this code further down the page you'll see that it'd appear as you scroll down.
You may just wrap your custom React component with the effect of your choosing like so:
<Zoom>
<CustomComponent />
</Zoom>
In such case, in the resulting <CustomComponent /> HTML markup will be wrapped in a div tag. If you would rather have a different HTML tag then wrap <CustomComponent /> in a tag of your choosing:
<Zoom>
<section>
<CustomComponent />
</section>
</Zoom>
or if you want to customize div props:
<Zoom>
<div className="some-class">
<CustomComponent />
</div>
</Zoom>
If you want to reveal an image you can wrap img tag with with the desired react-reveal effect:
<Zoom>
<img height="300" width="400" src="https://source.unsplash.com/random/300x400" />
</Zoom>
It would be a very good idea to specify width and height of any image you wish to reveal.
react-reveal will attach a reveal effect to each child it gets. In other words,
<Zoom>
<div>First Child</div>
<div>Second Child</div>
</Zoom>
will be equivalent to:
<Zoom>
<div>First Child</div>
</Zoom>
<Zoom>
<div>Second Child</div>
</Zoom>
If you don't want this to happen, you should wrap multiple children in a div tag:
<Zoom>
<div>
<div>First Child</div>
<div>Second Child</div>
</div>
</Zoom>
react-reveal supports server side rendering out of the box. In some cases, when the javascript bundle arrives much later than the HTML&CSS it might cause a flickering. To prevent this react-reveal will not apply reveal effects on the initial load.
Another option is to apply gentle fadeout effect on the initial render. You can force it on all react-reveal elements by placing the following code somewhere near the entry point of your app:
import config from 'react-reveal/globals';
config({ ssrFadeout: true });
Or you you can do it on a per element basis using ssrFadeout prop:
<Zoom ssrFadeout><h1>Content</h1></Zoom>
One last option is to use ssrReveal prop. If enabled, this option will suppress both flickering and ssrFadeout effect. The unfortunate drawback of this option is that the revealed content will appear hidden to Googlebot and to anyone with javascript switched off. So it will makes sense for images and/or headings which are duplicated elsewhere on the page.
Clone the this repository using the following command:
git clone https://github.com/rnosov/react-reveal.git
In the cloned directory, you can run following commands:
npm install
Installs required node modules
npm run build
Builds the package for production to the dist folder
npm test
Runs tests
Copyright © 2018 Roman Nosov. Project source code is licensed under the MIT license.
FAQs
Really simple way to add reveal on scroll animation to your React app.
The npm package react-reveal receives a total of 27,196 weekly downloads. As such, react-reveal popularity was classified as popular.
We found that react-reveal demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.