Website/public/assets/scss/components/_animation.scss
2025-04-08 14:37:17 +07:00

251 lines
6.1 KiB
SCSS

@use '../utils' as *;
/*=============================
00. Keyframe Animation
===============================*/
@-webkit-keyframes hoverShine {
100% {
left: 125%;
}
}
@keyframes hoverShine {
100% {
left: 125%;
}
}
.alltuchtopdown {
-webkit-animation: alltuchtopdown 1.5s ease-in-out 0s infinite alternate;
animation: alltuchtopdown 1.5s ease-in-out 0s infinite alternate;
animation-duration: 3s;
}
@keyframes alltuchtopdown {
0% {
-webkit-transform: rotateX(0deg) translateY(0px);
-moz-transform: rotateX(0deg) translateY(0px);
-ms-transform: rotateX(0deg) translateY(0px);
-o-transform: rotateX(0deg) translateY(0px);
transform: rotateX(0deg) translateY(0px);
}
50% {
-webkit-transform: rotateX(0deg) translateY(-20px);
-moz-transform: rotateX(0deg) translateY(-20px);
-ms-transform: rotateX(0deg) translateY(-20px);
-o-transform: rotateX(0deg) translateY(-20px);
transform: rotateX(0deg) translateY(-20px);
}
100% {
-webkit-transform: rotateX(0deg) translateY(0px);
-moz-transform: rotateX(0deg) translateY(0px);
-ms-transform: rotateX(0deg) translateY(0px);
-o-transform: rotateX(0deg) translateY(0px);
transform: rotateX(0deg) translateY(0px);
}
}
@-webkit-keyframes alltuchtopdown {
0% {
-webkit-transform: rotateX(0deg) translateY(0px);
-moz-transform: rotateX(0deg) translateY(0px);
-ms-transform: rotateX(0deg) translateY(0px);
-o-transform: rotateX(0deg) translateY(0px);
transform: rotateX(0deg) translateY(0px);
}
50% {
-webkit-transform: rotateX(0deg) translateY(-20px);
-moz-transform: rotateX(0deg) translateY(-20px);
-ms-transform: rotateX(0deg) translateY(-20px);
-o-transform: rotateX(0deg) translateY(-20px);
transform: rotateX(0deg) translateY(-20px);
}
100% {
-webkit-transform: rotateX(0deg) translateY(0px);
-moz-transform: rotateX(0deg) translateY(0px);
-ms-transform: rotateX(0deg) translateY(0px);
-o-transform: rotateX(0deg) translateY(0px);
transform: rotateX(0deg) translateY(0px);
}
}
.rightToLeft {
-webkit-animation-name: rightToLeft;
animation-name: rightToLeft;
-webkit-animation-duration: 10s;
animation-duration: 10s;
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
@keyframes rightToLeft {
0% {
transform: translateX(-30px);
}
50% {
transform: translateX(-10px);
}
100% {
transform: translateX(-30px);
}
}
.ribbonRotate {
-webkit-animation-name: ribbonRotate;
animation-name: ribbonRotate;
-webkit-animation-duration: 10s;
animation-duration: 10s;
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
@keyframes ribbonRotate {
0%,
100% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
25%,
75% {
-webkit-transform: rotate(15deg);
transform: rotate(15deg);
}
50% {
-webkit-transform: rotate(30deg);
transform: rotate(30deg);
}
}
.rotateme {
-webkit-animation-name: rotateme;
animation-name: rotateme;
-webkit-animation-duration: 10s;
animation-duration: 10s;
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
@keyframes rotateme {
from {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-webkit-keyframes rotateme {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
@keyframes fadeInUp2 {
0% {
opacity: 0;
-webkit-transform: translateY(20px);
-ms-transform: translateY(20px);
transform: translateY(20px);
}
100% {
opacity: 1;
-webkit-transform: translateY(0);
-ms-transform: translateY(0);
transform: translateY(0);
}
}
.fadeInUp2 {
-webkit-animation-name: fadeInUp2;
animation-name: fadeInUp2;
-webkit-animation-delay: .5s;
animation-delay: .5s;
-webkit-animation-duration: .5s;
animation-duration: .5s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@keyframes fadeInLeft2 {
0% {
opacity: 0;
-webkit-transform: translateX(-20px);
-ms-transform: translateX(-20px);
transform: translateX(-20px);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
}
.fadeInLeft2 {
-webkit-animation-name: fadeInLeft2;
animation-name: fadeInLeft2;
-webkit-animation-delay: .5s;
animation-delay: .5s;
-webkit-animation-duration: .5s;
animation-duration: .5s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@keyframes marquee {
0% {
-webkit-transform: translateX(0%);
transform: translateX(0%);
}
100% {
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}
}
@-webkit-keyframes heartbeat {
from {
-webkit-transform: scale(.8);
transform: scale(.8);
}
to {
-webkit-transform: scale(1.05);
transform: scale(1.05);
}
}
@keyframes heartbeat {
from {
-webkit-transform: scale(.8);
transform: scale(.8);
}
to {
-webkit-transform: scale(1.05);
transform: scale(1.05);
}
}
@keyframes pulse-border {
0% {
transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1);
opacity: 1;
}
100% {
transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1.5);
opacity: 0;
}
}
@-webkit-keyframes pulse-border {
0% {
transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1);
opacity: 1;
}
100% {
transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1.5);
opacity: 0;
}
}