dora-ui
Version:
A React.js Mobile UI Library
146 lines (129 loc) • 3.14 kB
text/less
@animationDuration: 350ms;
.dora {
/* fade visibility:hidden + opacity:0 = display:none */
&-fade-enter,
&-fade-appear,
&-fade-exit-done {
visibility: hidden;
opacity: 0;
}
&-fade-appear-active,
&-fade-enter-active {
visibility: visible;
opacity: 1;
transition: opacity @animationDuration, visibility @animationDuration;
}
&-fade-exit,
&-fade-enter-done {
visibility: visible;
opacity: 1;
}
&-fade-exit-active {
visibility: hidden;
opacity: 0;
transition: opacity @animationDuration, visibility @animationDuration;
}
/* zoom */
&-zoom-enter,
&-zoom-appear,
&-zoom-exit-done {
transform: scale(0, 0);
opacity: 0;
}
&-zoom-appear-active,
&-zoom-enter-active {
transform: scale(1, 1);
transform-origin: 50% 50%;
opacity: 1;
transition: transform @animationDuration;
transition-timing-function: cubic-bezier(0.18, 0.89, 0.32, 1.28);
}
&-zoom-exit,
&-zoom-enter-done {
transform: scale(1, 1);
opacity: 1;
}
&-zoom-exit-active {
transform: scale(0, 0);
transform-origin: 50% 50%;
opacity: 0;
transition: transform @animationDuration;
transition-timing-function: cubic-bezier(0.6, -0.3, 0.74, 0.05);
}
/* SlideUp */
&-slide-up-enter,
&-slide-up-appear,
&-slide-up-exit-done {
transform: translate(0, 100%);
}
&-slide-up-enter-active,
&-slide-up-appear-active {
transform: translate(0, 0);
transition: transform @animationDuration;
}
&-slide-up-exit,
&-slide-up-enter-done {
transform: translate(0, 0);
}
&-slide-up-exit-active {
transform: translate(0, 100%);
transition: transform @animationDuration;
}
/* SlideDown */
&-slide-down-enter,
&-slide-down-appear,
&-slide-down-exit-done {
transform: translate(0, -100%);
}
&-slide-down-enter-active,
&-slide-down-appear-active {
transform: translate(0, 0);
transition: transform @animationDuration;
}
&-slide-down-exit,
&-slide-down-enter-done {
transform: translate(0, 0);
}
&-slide-down-exit-active {
transform: translate(0, -100%);
transition: transform @animationDuration;
}
/* SlideLeft */
&-slide-left-enter,
&-slide-left-appear,
&-slide-left-exit-done {
transform: translate(100%, 0);
}
&-slide-left-enter-active,
&-slide-left-appear-active {
transform: translate(0, 0);
transition: transform @animationDuration;
}
&-slide-left-exit,
&-slide-left-enter-done {
transform: translate(0, 0);
}
&-slide-left-exit-active {
transform: translate(100%, 0);
transition: transform @animationDuration;
}
/* SlideRight */
&-slide-right-enter,
&-slide-right-appear,
&-slide-right-exit-done {
transform: translate(-100%, 0);
}
&-slide-right-enter-active,
&-slide-right-appear-active {
transform: translate(0, 0);
transition: transform @animationDuration;
}
&-slide-right-exit,
&-slide-right-enter-done {
transform: translate(0, 0);
}
&-slide-right-exit-active {
transform: translate(-100%, 0);
transition: transform @animationDuration;
}
}