rwadurian/frontend/admin-web/src/styles/animations.scss

203 lines
3.0 KiB
SCSS

// ============================================
// 榴莲认种管理后台 - 动画定义
// ============================================
@use 'variables' as *;
// 淡入动画
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
// 淡出动画
@keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
// 向上滑入
@keyframes slideInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
// 向下滑入
@keyframes slideInDown {
from {
opacity: 0;
transform: translateY(-20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
// 向左滑入
@keyframes slideInLeft {
from {
opacity: 0;
transform: translateX(-20px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
// 向右滑入
@keyframes slideInRight {
from {
opacity: 0;
transform: translateX(20px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
// 缩放进入
@keyframes scaleIn {
from {
opacity: 0;
transform: scale(0.95);
}
to {
opacity: 1;
transform: scale(1);
}
}
// 缩放退出
@keyframes scaleOut {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(0.95);
}
}
// 弹跳动画
@keyframes bounce {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-5px);
}
}
// 脉冲动画
@keyframes pulse {
0% {
opacity: 1;
}
50% {
opacity: 0.5;
}
100% {
opacity: 1;
}
}
// 旋转动画
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
// 摇晃动画
@keyframes shake {
0%, 100% {
transform: translateX(0);
}
10%, 30%, 50%, 70%, 90% {
transform: translateX(-5px);
}
20%, 40%, 60%, 80% {
transform: translateX(5px);
}
}
// 骨架屏闪烁
@keyframes shimmer {
0% {
background-position: -200% 0;
}
100% {
background-position: 200% 0;
}
}
// 动画类
.animate-fadeIn {
animation: fadeIn $duration-base $ease-out;
}
.animate-fadeOut {
animation: fadeOut $duration-base $ease-in;
}
.animate-slideInUp {
animation: slideInUp $duration-base $ease-out;
}
.animate-slideInDown {
animation: slideInDown $duration-base $ease-out;
}
.animate-slideInLeft {
animation: slideInLeft $duration-base $ease-out;
}
.animate-slideInRight {
animation: slideInRight $duration-base $ease-out;
}
.animate-scaleIn {
animation: scaleIn $duration-fast $ease-out;
}
.animate-scaleOut {
animation: scaleOut $duration-fast $ease-in;
}
.animate-bounce {
animation: bounce 1s infinite;
}
.animate-pulse {
animation: pulse 2s infinite;
}
.animate-spin {
animation: spin 1s linear infinite;
}
.animate-shake {
animation: shake 0.5s ease-in-out;
}