# react-smooth
react-smooth is a animation library work on React.
[](https://badge.fury.io/js/react-smooth)
[](https://travis-ci.org/recharts/react-smooth)
[](https://www.npmjs.com/package/react-smooth)
[](https://gitter.im/recharts/react-smooth?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
## install
```
npm install --save react-smooth
```
## Usage
simple animation
```jsx
```
steps animation
```jsx
const steps = [{
style: {
opacity: 0,
},
duration: 400,
}, {
style: {
opacity: 1,
transform: 'translate(0, 0)',
},
duration: 1000,
}, {
style: {
transform: 'translate(100px, 100px)',
},
duration: 1200,
}];
```
children can be a function
```jsx
{
({ opacity }) =>
}
```
you can configure js timing function
```js
const easing = configureBezier(0.1, 0.1, 0.5, 0.8);
const easing = configureSpring({ stiff: 170, damping: 20 });
```
group animation
```jsx
const appear = {
from: 0,
to: 1,
attributeName: 'opacity',
};
const leave = {
steps: [{
style: {
transform: 'translateX(0)',
},
}, {
duration: 1000,
style: {
transform: 'translateX(300)',
height: 50,
},
}, {
duration: 2000,
style: {
height: 0,
},
}]
}
{ list }
/*
* @description: add compatible prefix in style
*
* style = { transform: xxx, ...others };
*
* translatedStyle = {
* WebkitTransform: xxx,
* MozTransform: xxx,
* OTransform: xxx,
* msTransform: xxx,
* ...others,
* };
*/
const translatedStyle = translateStyle(style);
```
## API
### Animate
name |
type |
default |
description |
from |
string or object |
'' |
set the initial style of the children |
to |
string or object |
'' |
set the final style of the children |
canBegin |
boolean |
true |
whether the animation is start |
begin |
number |
0 |
animation delay time |
duration |
number |
1000 |
animation duration |
steps |
array |
[] |
animation keyframes |
onAnimationEnd |
function |
() => null |
called when animation finished |
attributeName |
string |
'' |
style property |
easing |
string |
'ease' |
the animation timing function, support css timing function temporary |
isActive |
boolean |
true |
whether the animation is active |
children |
element |
|
support only child temporary |
### AnimateGroup
name |
type |
default |
description |
appear |
object |
undefined |
configure element appear animation |
enter |
object |
undefined |
configure element appear animation |
leave |
object |
undefined |
configure element appear animation |
## License
[MIT](http://opensource.org/licenses/MIT)
Copyright (c) 2015-2021 Recharts Group