Coder Social home page Coder Social logo

nilportugues / react-stack-cards Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yoloten/react-stack-cards

0.0 2.0 0.0 18.02 MB

Visit the demo page

Home Page: https://yoloten.github.io/react-stack-cards/

License: MIT License

TypeScript 100.00%

react-stack-cards's Introduction

React-Stack-Cards

Collection of stack card effects exclusively for React that's perfect for galleries and preview grids. Inspired by ideas from tympanus.net. See the demo https://yoloten.github.io/react-stack-cards/

Feautures:

  • Animations on hover, swipe and toggle
  • Swipe animations allow you to work with big amount of images and colors
  • Flexible settings like adding elements into the cards, change duration of animation and etc.
  • Effects actually look awesome ๐Ÿ˜Š
  • Supports Typescript

Available components:

  • ToggleCard
  • TinderLikeCard
  • StackCard

Installation

You can install react-stack-cards from npm

npm i -S react-stack-cards

Or use yarn

yarn add react-stack-cards

Simple usage

import { ToggleCard, TinderLikeCard, StackCard } from 'react-stack-cards'

class Example extends React.Component {
  constructor(props){
    super(props)
    this.state = {
      directionTinder: "swipeCornerDownRight",
      directionToggle: "sideSlide",
      directionStack: "topRight",
      isOpen: false
    }
    this.Tinder = null
  }
  
  onTinderSwipe() {
    this.Tinder.swipe()
  }
  onToggle() {
    this.setState({isOpen: !this.state.isOpen})
  }

  render() {
    const arr = ["first", "second", "third", "fourth"]
    const numbers = [0, 1, 2, 3]
    return (
      <div>
        <ToggleCard 
          images={arr}
          width="350"
          height="240"
          direction={this.state.directionToggle}
          duration={400}
          className="toggle"
          isOpen={this.state.isOpen}
          onClick={()=> alert("Hello")}
        >
        { numbers.map( i => <div>{i}</div> )}
        </ToggleCard>
        <button onClick={this.onToggle.bind(this)}>Toggle</button>

        <TinderLikeCard
            images={arr}
            width="350"
            height="250"
            direction={this.state.directionTinder}
            duration={400}
            ref={(node) => this.Tinder = node}
            className="tinder"
        >
            { numbers.map( i => <div>{i}</div> )}
        </TinderLikeCard>
        <button onClick={this.onTinderSwipe.bind(this)}>Swipe</button>

        <StackCard
          images={arr}
          color={"#f95c5c"}
          width="350"
          height="240"
          direction={this.state.directionStack}
          onClick={()=> alert("Hello")}
        >
          <div>i</div>
        </StackCard>
      </div>
    );
  }
}

Props

Common props for all three components:

  • children - allows to add children elements (React.Element)
  • className - apply a className to the control (string)
  • direction - select animation type (string)
  • duration - set duration of animation (number)
  • images - array of images to set on the background (array of strings)
  • height - height of the card (string)
  • width - width of the card (string)

children prop can be an array of the elements or single element in TinderLikeCard and ToggleCard. StackCard only supports one element.

Special props for TinderLikeCard:

  • colors - array of colors to set on the background (array of strings)

Special props for ToggleCard:

  • colors - array of colors to set on the background (array of strings)
  • onMouseEnter - occurs when the mouse pointer is moved onto an element
  • onMouseLeave - occurs when the mouse pointer is moved out of an element
  • onClick - occurs when the user clicks on an element
  • isOpen - allows you to animate component (boolean)

Special props for StackCard:

  • color - color to set on the background (string)
  • onMouseEnter - occurs when the mouse pointer is moved onto an element
  • onMouseLeave - occurs when the mouse pointer is moved out of an element
  • onClick - occurs when the user clicks on an element

Methods

  • swipe() - swipe method for TinderLikeCard

License

MIT Licensed. Copyright (c) 2019 yoloten

react-stack-cards's People

Contributors

yoloten avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.