react-drizzle

1.0.9994 • Public • Published

react-drizzle

A react library to help sequence reveal animations on scroll.

NPM JavaScript Style Guide

Drizzle

Install

npm install --save react-drizzle

Requires Peer Dependency: gsap

npm install --save gsap

Usage

import React, { Component } from 'react'
 
import Drizzle, { DrizzleSettings } from 'react-drizzle'
 
class Example extends Component {
  render() {
    return (
      <DrizzleSettings speed={2}>
        <Drizzle type="text" group="my-group-namespace">
          <h1>
            Text you<br></br> want to<br></br>Animate
          </h1>
        </Drizzle>
 
        <Drizzle type="fade-up" group="my-group-namespace">
          {/* it will wait to load image before revealing the group */}
          <img
            width="130"
            height="auto"
            src="https://images.unsplash.com/photo-1532264523420-881a47db012d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=100"
          ></img>
        </Drizzle>
 
        <Drizzle type="fade-up" group="second-group">
          <img
            width="130"
            height="auto"
            src="https://images.unsplash.com/photo-1532264523420-881a47db012d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=100"
          ></img>
        </Drizzle>
      </DrizzleSettings>
    )
  }
}

Attributes

<Drizzle>

  • type: fade or text. Can take a direction:
    • -up, -down, -left, -right, ex: type="fade-down"
  • order: Number - if this isn't set, it picks the order based off creation order. Elements with an order set always rank higher than elements without an order. The plugin sets a calculated order — for example, if two elements have the order 1, 5, 7, the calculated orders get set to 0, 1, 2.
  • speed: Number in seconds (default: 1) - the time it takes for a single Drizzle element to appear. This is multiplied by its calculated order.
  • delay: Number in seconds (default: 0) - the amount of time to wait to reveal the item, after it is ready to reveal.
  • distance: Number - pixel distance (default: 25). Used for movement, such as a fade-up
  • onAppear: Function - callback that triggers when the item is ready to reveal, e.g. when the item moves into view.
  • visibilityRootMargin String or Number - (default: 0) Margin around the root. See Intersection Observer API
  • visibilityThreshold Array or Number - (default: 0.3) Indicates at what percentage of the target's visibility the observer's callback should be executed Intersection Observer API
  • containerSx: Extend sx props to the container element
  • containerStyle: Extend style props to the container element
  • sx: Extend sx props to the underlying animation element
  • style: Extend style props to the underlying animation element

<DrizzleSettings> - global settings applied to all child <Drizzle> elements

  • Can set defaults for speed, delay, distance, visibilityRootMargin, visibilityThreshold.
  • staggerSpeed: Number in seconds (default: 0.1) - the time to wait between revealing Drizzle items within the group.
  • ease: String (default: 'Power2.easeOut') - a GSAP tween. ex: ease={'elastic.out(1, 0.3)'}
  • waitForChildImages: Boolean (default: true) - doesn't reveal group until images in the group are loaded.
  • textLineStaggerSpeed: Number in seconds (default: 0.1) - for type="text"; the time to wait between revealing lines of text.

Order of operations:

Drizzle is on screen, wait for staggerSpeed, wait for delay speed, then display its children.

License

MIT © UseAllFive

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.0.99942latest

Version History

VersionDownloads (Last 7 Days)Published
1.0.99942
1.0.99931
1.0.99921
1.0.99911
1.0.9990
1.0.9981
1.0.9971
1.0.9961
1.0.9951
1.0.9941
1.0.9931
1.0.9921
1.0.9911
1.0.991
1.0.981
1.0.971
1.0.961
1.0.951
1.0.941
1.0.931
1.0.921
1.0.911
1.0.91
1.0.81
1.0.71
1.0.61
1.0.51
1.0.41
1.0.31
1.0.21
1.0.11
1.0.01

Package Sidebar

Install

npm i react-drizzle

Weekly Downloads

32

Version

1.0.9994

License

MIT

Unpacked Size

159 kB

Total Files

6

Last publish

Collaborators

  • useallfive