react-expand-animated

The expand component that animate the height of child component when toggling

Usage no npm install needed!

<script type="module">
  import reactExpandAnimated from 'https://cdn.skypack.dev/react-expand-animated';
</script>

README

React Expand

react-expand-animated 1.0.2

Simple expandable wrapper component with height, opacity animation.

Demo

Edit 107wq1klr4

Install

npm i react-expand-animated

Usage

import React, { Component } from 'react';
import Expand from 'react-expand-animated';

class App extends Component {
  state = { open: false };

  toggle = () => {
    this.setState(prevState => ({ open: !prevState.open }));
  };

  render() {
    return (
      <Fragment>
        <button onClick={this.toggle}>Open</button>
        <Expand open={this.state.open}>
          <div style={{ width: '300px', height: '400px', color: 'red' }}>Hello</div>
        </Expand>
      </Fragment>
    );
  }
}

export default App;

Props

Props Type Required Default Description
children node true undefined The expanded or collapsed content
open bool false false When set to true expand the children component otherwise collapse it
duration number false 400 Animation duration in ms
easing string false 'ease-in-out' Css3 Animation's type
className string false '' Wrapper's className
tag string false 'div' Wrapper's tag
transitions arrayOf(string) false ['height', 'opacity'] Transition attributes
styles arrayOf(shape({ open: object, close: object })) false {} Additional inline-styles on open or close phase. For example: styles={open: { marginTop: 100 }, close: { marginTop: 0 }}
## Development

Dev: npm run dev

Build: npm run build

Test: npm test

Test Coverage: npm run test:cov