Define a custom transition
When it comes to animation the possibility are endless and it doesn't need to be complicated! Starting v7, css animations just works out of the box! You can write your own using the power of css or use any css animation library like animate.css or even copy paste from animista.
All you need to do is to import the cssTransition
and define your enter
and exit
classes.
const bounce = cssTransition({
enter: "animate__animated animate__bounceIn",
exit: "animate__animated animate__bounceOut"
});
const swirl = cssTransition({
enter: "swirl-in-fwd",
exit: "swirl-out-bck"
});
Handle transition based on the toast position
Some transitions are based on the toast position. This is the case for the default one. If you set appendPosition
to true
, the current position will be appended to the enter
and exit
class name:
const Zoom = cssTransition({
// zoomIn will become zoomIn--top-right or zoomIn--top-left and so on
enter: 'zoomIn',
// zoomIn will become zoomOut--top-right or zoomOut--top-left and so on
exit: 'zoomOut',
// default to false
appendPosition: true
});
Don't forget to add the position as well when you write your css animations. If you pass multiple classes, the position will be appended only to the last one.
Prevent the toast from collapsing after the exit animation
By default, the remaining toast will collapse smoothly
This can be disabled.
const Zoom = cssTransition({
collapse: false,
enter: 'zoomIn',
exit: 'zoomOut',
});
Tweak collapse duration
The default duration is 300ms. This is also easy to change 💪
const Zoom = cssTransition({
collapseDuration: 500,
enter: 'zoomIn',
exit: 'zoomOut',
});