feat(ui): add a dropdown animation

This commit is contained in:
Łukasz Mierzwa
2018-09-22 14:29:15 +01:00
parent 1b4f611406
commit 285e1e98ac
2 changed files with 57 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
.components-animation-slide-enter,
.components-animation-slide-appear {
opacity: 0.01;
overflow: hidden;
max-height: 0px;
border: 0;
padding: 0;
margin: 0;
}
.components-animation-slide-enter-active,
.components-animation-slide-appear-active {
max-height: 500px; /* can't use auto here */
opacity: 1;
transition-property: max-height, opacity;
transition-duration: 0.15s;
transition-timing-function: ease-out;
}
.components-animation-slide-exit {
max-height: 500px; /* can't use auto here */
opacity: 1;
}
.components-animation-slide-exit-active {
opacity: 0.01;
overflow: hidden;
max-height: 0px;
border: 0;
padding: 0;
margin: 0;
transition-property: max-height, opacity;
transition-duration: 0.15s;
transition-timing-function: ease-out;
}

View File

@@ -0,0 +1,24 @@
import React from "react";
import PropTypes from "prop-types";
import { CSSTransition } from "react-transition-group";
import "./index.css";
const DropdownSlide = ({ children, duration, ...props }) => (
<CSSTransition
in={true}
classNames="components-animation-slide"
timeout={150}
appear={true}
exit={true}
{...props}
>
{children}
</CSSTransition>
);
DropdownSlide.propTypes = {
children: PropTypes.node.isRequired
};
export { DropdownSlide };