You've already forked gitea-banana-theme
166 lines
2.6 KiB
TypeScript
166 lines
2.6 KiB
TypeScript
import { overlayAppearDown, overlayAppearUp } from "src/core/theme";
|
|
import { css } from "src/types/vars";
|
|
|
|
export const keyframe = css`
|
|
// 向下出现动画
|
|
@keyframes ${overlayAppearDown} {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(-8px);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
// 向上出现动画
|
|
@keyframes ${overlayAppearUp} {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(8px);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
// 添加更多动画效果
|
|
// 淡入动画
|
|
@keyframes fade-in {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
// 缩放进入动画
|
|
@keyframes scale-in {
|
|
0% {
|
|
opacity: 0;
|
|
transform: scale(0.95);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
// 缩放退出动画
|
|
@keyframes scale-out {
|
|
0% {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
transform: scale(0.95);
|
|
}
|
|
}
|
|
|
|
// 从左侧滑入动画
|
|
@keyframes slide-in-from-left {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateX(-100%);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
// 从右侧滑入动画
|
|
@keyframes slide-in-from-right {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateX(100%);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
// 从顶部滑入动画
|
|
@keyframes slide-in-from-top {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(-100%);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
// 从底部滑入动画
|
|
@keyframes slide-in-from-bottom {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(100%);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
// 脉冲动画
|
|
@keyframes pulse {
|
|
0%, 100% {
|
|
opacity: 1;
|
|
}
|
|
50% {
|
|
opacity: 0.5;
|
|
}
|
|
}
|
|
|
|
// 脉冲点击动画
|
|
@keyframes pulse-click {
|
|
0% {
|
|
transform: scale(1);
|
|
}
|
|
50% {
|
|
transform: scale(0.95);
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
// 弹跳动画
|
|
@keyframes bounce {
|
|
0%, 100% {
|
|
transform: translateY(0);
|
|
}
|
|
50% {
|
|
transform: translateY(-10px);
|
|
}
|
|
}
|
|
|
|
// 旋转动画
|
|
@keyframes spin {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
// 摆动动画
|
|
@keyframes swing {
|
|
0%, 100% {
|
|
transform: rotate(0deg);
|
|
}
|
|
25% {
|
|
transform: rotate(5deg);
|
|
}
|
|
75% {
|
|
transform: rotate(-5deg);
|
|
}
|
|
}
|
|
`; |