Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
R

react-genie

> 编程语言
Open source

A set of React components for animating elements as they scroll into the viewport

742 stars0 likes2 views
WebsiteGitHub

About

A set of React components for animating elements as they scroll into the viewport

‍♂️ react-genie

‍♂️ Made by @thekitze

Other projects:

  • Sizzy - A browser for designers and developers, focused on responsive design
  • React Academy - Interactive React and GraphQL workshops
  • Glink - Changelogs, Roadmap, User Requests
  • Benji - Ultimate wellness and productivity platform
  • JSUI - A powerful UI toolkit for managing JavaScript apps
  • YouTube Vlog - Follow my journey

Used on sizzy.co

CodeSandbox

https://codesandbox.io/s/react-genie-example-8xfsc

Demo

https://8xfsc.csb.app/

Dependencies

  • styled-components
  • layout-styled-components
  • react-animations
  • react-intersection-observer

Usage

yarn add react-genie

Just render the RevealGlobalStyles component anywhere, so it will add the class names for the animations:

javascript
import {RevealGlobalStyles} from 'react-genie'

const App = () => {
  return (
    

    
  );
};

Default animation:

javascript
import {Reveal} from 'react-genie';

  
The default animation is fade in

Props:

javascript
{
  animation?: string; // animation class name
  delay?: number; // animation delay
  mode?: RevealMode; // "clone" or "wrap"
  debugName?: string; // if you specify it, you will get console logs
  style?: CSSObject; // extra styles
  onShowDone?: () => void; // callback after show
}

Specifying animation using the animation prop:

javascript
import {Reveal, Animation} from 'react-genie';

  
This title will slide in from the left

Hint: you can also pass your own class name here if you have custom animations.

Wrap vs Clone

The default mode is wrap, so the children element will be wrapped in an additional div. If you don't want that additional div, you can use clone or RevealMode.Clone.

javascript
import {Reveal, RevealMode} from 'react-genie';

  
This h1 will be cloned instead of wrapped

In order for clone to work your element needs to accept className, style, and ref, as props. So, if you're trying to clone custom components, make sure they support these props.

The AnimatedTitle component

javascript
import {Reveal, AnimatedTitle} from 'react-genie';

  This sentence will animate in word by word

The AnimatedTitle component will split the children prop word by word (so it should be a string), and animate each word with a delay in between.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

TypeScript

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言