refactor: 重构中奖和推送大奖事件,中奖过度动画,和开奖动画

This commit is contained in:
JiaJun
2026-05-27 14:57:08 +08:00
parent 046f250ce3
commit 2b2b86a73d
48 changed files with 2471 additions and 422 deletions

View File

@@ -348,6 +348,135 @@
height: 0;
display: none;
}
.desktop-title-vertical-marquee {
display: flex;
flex-direction: column;
animation: desktop-title-marquee-y 7s linear infinite;
will-change: transform;
}
@keyframes desktop-title-marquee-y {
from {
transform: translateY(0);
}
to {
transform: translateY(-50%);
}
}
@property --gold-angle {
syntax: "<angle>";
inherits: false;
initial-value: 0deg;
}
@keyframes rotating-gold-border {
to {
--gold-angle: 360deg;
}
}
@keyframes gold-border-pulse {
0%,
100% {
opacity: 0.34;
transform: scale(0.992);
}
50% {
opacity: 0.54;
transform: scale(1.008);
}
}
.gold-reveal-shell {
--gold-angle: 0deg;
position: absolute;
inset: calc(var(--design-unit) * 3.2);
border-radius: calc(var(--design-unit) * 16);
overflow: hidden;
clip-path: inset(0 round calc(var(--design-unit) * 16));
pointer-events: none;
}
.gold-reveal-shell::before {
content: "";
position: absolute;
inset: 0;
border-radius: calc(var(--design-unit) * 16);
padding: calc(var(--design-unit) * 2.6);
background: conic-gradient(
from var(--gold-angle),
#534217 10%,
#534217 20%,
#ffe226 45%,
#534217 60%,
#534217 85%,
#ffe226 95%,
#534217 100%
);
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
animation: rotating-gold-border 8s linear infinite;
}
.gold-reveal-shell::after {
content: "";
position: absolute;
inset: calc(var(--design-unit) * 0.8);
border-radius: calc(var(--design-unit) * 15);
padding: calc(var(--design-unit) * 1.8);
background: conic-gradient(
from calc(var(--gold-angle) + 180deg),
rgba(255, 247, 210, 0) 0%,
rgba(255, 247, 210, 0) 66%,
rgba(255, 252, 232, 0.14) 71%,
rgba(255, 254, 244, 0.98) 75%,
rgba(255, 230, 130, 0.96) 79%,
rgba(255, 247, 210, 0.18) 84%,
rgba(255, 247, 210, 0) 90%,
rgba(255, 247, 210, 0) 100%
);
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
animation: rotating-gold-border 2.1s linear infinite;
}
.gold-reveal-static-border {
position: absolute;
inset: calc(var(--design-unit) * 3.2);
border-radius: calc(var(--design-unit) * 16);
border: calc(var(--design-unit) * 3.8) solid rgba(181, 138, 40, 0.98);
box-shadow:
inset 0 0 calc(var(--design-unit) * 10) rgba(255, 241, 181, 0.28),
0 0 calc(var(--design-unit) * 12) rgba(255, 210, 102, 0.2);
pointer-events: none;
}
.gold-reveal-glow {
position: absolute;
inset: calc(var(--design-unit) * 1.4);
border-radius: calc(var(--design-unit) * 18);
background: radial-gradient(
circle at center,
rgba(255, 226, 92, 0.18) 0%,
rgba(219, 161, 42, 0.14) 42%,
rgba(127, 86, 13, 0.08) 62%,
transparent 82%
);
filter: blur(calc(var(--design-unit) * 2.8));
opacity: 0.36;
pointer-events: none;
animation: gold-border-pulse 1.9s ease-in-out infinite;
}
}
@theme inline {