202 lines
5.3 KiB
SCSS
202 lines
5.3 KiB
SCSS
// studio animations & keyframes
|
|
// ====================
|
|
|
|
// rotate clockwise
|
|
@mixin rotateClockwise {
|
|
0% {
|
|
@include transform(rotate(0deg));
|
|
}
|
|
|
|
100% {
|
|
@include transform(rotate(360deg));
|
|
}
|
|
}
|
|
|
|
@-moz-keyframes rotateClockwise { @include rotateClockwise(); }
|
|
@-webkit-keyframes rotateClockwise { @include rotateClockwise(); }
|
|
@-o-keyframes rotateClockwise { @include rotateClockwise(); }
|
|
@keyframes rotateClockwise { @include rotateClockwise();}
|
|
|
|
@mixin anim-rotateClockwise($duration, $timing: ease-in-out, $count: 1, $delay: 0) {
|
|
@include animation-name(rotateClockwise);
|
|
@include animation-duration($duration);
|
|
@include animation-delay($delay);
|
|
@include animation-timing-function($timing);
|
|
@include animation-iteration-count($count);
|
|
@include animation-fill-mode(both);
|
|
|
|
}
|
|
|
|
// ====================
|
|
|
|
// notifications slide up
|
|
@mixin notificationsSlideUp {
|
|
0% {
|
|
@include transform(translateY(0));
|
|
}
|
|
|
|
90% {
|
|
@include transform(translateY(-($notification-height)));
|
|
}
|
|
|
|
100% {
|
|
@include transform(translateY(-($notification-height*0.99)));
|
|
}
|
|
}
|
|
|
|
@-moz-keyframes notificationsSlideUp { @include notificationsSlideUp(); }
|
|
@-webkit-keyframes notificationsSlideUp { @include notificationsSlideUp(); }
|
|
@-o-keyframes notificationsSlideUp { @include notificationsSlideUp(); }
|
|
@keyframes notificationsSlideUp { @include notificationsSlideUp();}
|
|
|
|
@mixin anim-notificationsSlideUp($duration, $timing: ease-in-out, $count: 1, $delay: 0) {
|
|
@include animation-name(notificationsSlideUp);
|
|
@include animation-duration($duration);
|
|
@include animation-delay($delay);
|
|
@include animation-timing-function($timing);
|
|
@include animation-iteration-count($count);
|
|
@include animation-fill-mode(both);
|
|
|
|
}
|
|
|
|
// ====================
|
|
|
|
// notifications slide down
|
|
@mixin notificationsSlideDown {
|
|
0% {
|
|
@include transform(translateY(-($notification-height*0.99)));
|
|
}
|
|
|
|
10% {
|
|
@include transform(translateY(-($notification-height)));
|
|
}
|
|
|
|
100% {
|
|
@include transform(translateY(0));
|
|
}
|
|
}
|
|
|
|
@-moz-keyframes notificationsSlideDown { @include notificationsSlideDown(); }
|
|
@-webkit-keyframes notificationsSlideDown { @include notificationsSlideDown(); }
|
|
@-o-keyframes notificationsSlideDown { @include notificationsSlideDown(); }
|
|
@keyframes notificationsSlideDown { @include notificationsSlideDown();}
|
|
|
|
@mixin anim-notificationsSlideDown($duration, $timing: ease-in-out, $count: 1, $delay: 0) {
|
|
@include animation-name(notificationsSlideDown);
|
|
@include animation-duration($duration);
|
|
@include animation-delay($delay);
|
|
@include animation-timing-function($timing);
|
|
@include animation-iteration-count($count);
|
|
@include animation-fill-mode(both);
|
|
}
|
|
|
|
// ====================
|
|
|
|
// notifications slide up then down
|
|
@mixin notificationsSlideUpDown {
|
|
0%, 100% {
|
|
@include transform(translateY(0));
|
|
}
|
|
|
|
15%, 85% {
|
|
@include transform(translateY(-($notification-height)));
|
|
}
|
|
|
|
20%, 80% {
|
|
@include transform(translateY(-($notification-height*0.99)));
|
|
}
|
|
}
|
|
|
|
@-moz-keyframes notificationsSlideUpDown { @include notificationsSlideUpDown(); }
|
|
@-webkit-keyframes notificationsSlideUpDown { @include notificationsSlideUpDown(); }
|
|
@-o-keyframes notificationsSlideUpDown { @include notificationsSlideUpDown(); }
|
|
@keyframes notificationsSlideUpDown { @include notificationsSlideUpDown();}
|
|
|
|
@mixin anim-notificationsSlideUpDown($duration, $timing: ease-in-out, $count: 1, $delay: 0) {
|
|
@include animation-name(notificationsSlideUpDown);
|
|
@include animation-duration($duration);
|
|
@include animation-delay($delay);
|
|
@include animation-timing-function($timing);
|
|
@include animation-iteration-count($count);
|
|
@include animation-fill-mode(both);
|
|
}
|
|
|
|
// ====================
|
|
|
|
// bounce in
|
|
@mixin bounceIn {
|
|
0% {
|
|
opacity: 0;
|
|
@include transform(scale(0.3));
|
|
}
|
|
|
|
50% {
|
|
opacity: 1;
|
|
@include transform(scale(1.05));
|
|
}
|
|
|
|
100% {
|
|
@include transform(scale(1));
|
|
}
|
|
}
|
|
|
|
@-moz-keyframes bounceIn { @include bounceIn(); }
|
|
@-webkit-keyframes bounceIn { @include bounceIn(); }
|
|
@-o-keyframes bounceIn { @include bounceIn(); }
|
|
@keyframes bounceIn { @include bounceIn();}
|
|
|
|
@mixin anim-bounceIn($duration, $timing: ease-in-out, $count: 1, $delay: 0) {
|
|
@include animation-name(bounceIn);
|
|
@include animation-duration($duration);
|
|
@include animation-delay($delay);
|
|
@include animation-timing-function($timing);
|
|
@include animation-iteration-count($count);
|
|
@include animation-fill-mode(both);
|
|
}
|
|
|
|
// ====================
|
|
|
|
// bounce in
|
|
@mixin bounceOut {
|
|
0% {
|
|
opacity: 0;
|
|
@include transform(scale(0.3));
|
|
}
|
|
|
|
50% {
|
|
opacity: 1;
|
|
@include transform(scale(1.05));
|
|
}
|
|
|
|
100% {
|
|
@include transform(scale(1));
|
|
}
|
|
|
|
0% {
|
|
@include transform(scale(1));
|
|
}
|
|
|
|
50% {
|
|
opacity: 1;
|
|
@include transform(scale(1.05));
|
|
}
|
|
|
|
100% {
|
|
opacity: 0;
|
|
@include transform(scale(0.3));
|
|
}
|
|
}
|
|
|
|
@-moz-keyframes bounceOut { @include bounceOut(); }
|
|
@-webkit-keyframes bounceOut { @include bounceOut(); }
|
|
@-o-keyframes bounceOut { @include bounceOut(); }
|
|
@keyframes bounceOut { @include bounceOut();}
|
|
|
|
@mixin anim-bounceOut($duration, $timing: ease-in-out, $count: 1, $delay: 0) {
|
|
@include animation-name(bounceOut);
|
|
@include animation-duration($duration);
|
|
@include animation-delay($delay);
|
|
@include animation-timing-function($timing);
|
|
@include animation-iteration-count($count);
|
|
@include animation-fill-mode(both);
|
|
} |