💄 Decorated rewind

This commit is contained in:
2025-12-27 14:45:45 +08:00
parent b733b62e6d
commit ac3e647aba
2 changed files with 19 additions and 39 deletions

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class="px-5"> <div class="px-5 rewind-bg">
<!-- Loading State --> <!-- Loading State -->
<div <div
v-if="pending" v-if="pending"
@@ -280,9 +280,6 @@
<div class="floating-emoji absolute bottom-1/3 -right-4 text-5xl z-10" <div class="floating-emoji absolute bottom-1/3 -right-4 text-5xl z-10"
style="animation: drift 8s ease-in-out infinite;">💡 style="animation: drift 8s ease-in-out infinite;">💡
</div> </div>
<div class="floating-emoji absolute top-2/3 right-1/4 text-4xl z-10"
style="animation: float 9s ease-in-out infinite 1s;">📝
</div>
<n-card <n-card
class="w-full max-w-4xl bg-white/80 dark:bg-slate-800/80 backdrop-blur-sm shadow-lg border-l-4 border-green-600" class="w-full max-w-4xl bg-white/80 dark:bg-slate-800/80 backdrop-blur-sm shadow-lg border-l-4 border-green-600"
> >
@@ -390,7 +387,7 @@
</div> </div>
<div class="transition-words text-center text-lg opacity-70 py-16"> <div class="transition-words text-center text-lg opacity-70 py-16">
<div class="text-3xl mb-3">🎨</div> <div class="text-3xl mb-3">🤔</div>
<p>每一个创作都是你心灵的印记而这些印记汇聚成了什么</p> <p>每一个创作都是你心灵的印记而这些印记汇聚成了什么</p>
</div> </div>
@@ -401,7 +398,7 @@
> >
<div class="relative"> <div class="relative">
<div class="floating-emoji absolute -top-8 left-1/3 text-5xl z-10" <div class="floating-emoji absolute -top-8 left-1/3 text-5xl z-10"
style="animation: float 5s ease-in-out infinite;"> style="animation: float 5s ease-in-out infinite;">
</div> </div>
<div class="floating-emoji absolute top-1/4 -right-6 text-4xl z-10" <div class="floating-emoji absolute top-1/4 -right-6 text-4xl z-10"
style="animation: float-delayed 7s ease-in-out infinite 0.5s;">💬 style="animation: float-delayed 7s ease-in-out infinite 0.5s;">💬
@@ -409,9 +406,6 @@
<div class="floating-emoji absolute bottom-1/4 -left-4 text-5xl z-10" <div class="floating-emoji absolute bottom-1/4 -left-4 text-5xl z-10"
style="animation: drift 9s ease-in-out infinite;">💭 style="animation: drift 9s ease-in-out infinite;">💭
</div> </div>
<div class="floating-emoji absolute top-2/3 right-1/3 text-4xl z-10"
style="animation: float 8s ease-in-out infinite 1.2s;">
</div>
<n-card <n-card
class="w-full max-w-4xl bg-white/80 dark:bg-slate-800/80 backdrop-blur-sm shadow-lg border-l-4 border-blue-600" class="w-full max-w-4xl bg-white/80 dark:bg-slate-800/80 backdrop-blur-sm shadow-lg border-l-4 border-blue-600"
> >
@@ -474,15 +468,12 @@
<div class="floating-emoji absolute -top-6 -right-4 text-5xl z-10" <div class="floating-emoji absolute -top-6 -right-4 text-5xl z-10"
style="animation: float 6s ease-in-out infinite;">🌍 style="animation: float 6s ease-in-out infinite;">🌍
</div> </div>
<div class="floating-emoji absolute top-1/3 -left-6 text-4xl z-10" <div class="floating-emoji absolute -top-4 -left-6 text-4xl z-10"
style="animation: float-delayed 8s ease-in-out infinite 0.4s;">🔍 style="animation: float-delayed 8s ease-in-out infinite 0.4s;">🔍
</div> </div>
<div class="floating-emoji absolute bottom-1/4 right-1/4 text-5xl z-10" <div class="floating-emoji absolute -bottom-4 right-4 text-5xl z-10"
style="animation: drift 10s ease-in-out infinite;">🎯 style="animation: drift 10s ease-in-out infinite;">🎯
</div> </div>
<div class="floating-emoji absolute top-2/3 -right-8 text-4xl z-10"
style="animation: float 7s ease-in-out infinite 1.5s;">📊
</div>
<n-card <n-card
class="w-full max-w-4xl bg-white/80 dark:bg-slate-800/80 backdrop-blur-sm shadow-lg border-l-4 border-indigo-600" class="w-full max-w-4xl bg-white/80 dark:bg-slate-800/80 backdrop-blur-sm shadow-lg border-l-4 border-indigo-600"
> >
@@ -568,9 +559,6 @@
<div class="floating-emoji absolute bottom-1/3 -left-6 text-5xl z-10" <div class="floating-emoji absolute bottom-1/3 -left-6 text-5xl z-10"
style="animation: drift 8s ease-in-out infinite;">📞 style="animation: drift 8s ease-in-out infinite;">📞
</div> </div>
<div class="floating-emoji absolute top-2/3 right-1/3 text-4xl z-10"
style="animation: float 7s ease-in-out infinite 1.8s;">🎭
</div>
<n-card <n-card
class="w-full max-w-4xl bg-white/80 dark:bg-slate-800/80 backdrop-blur-sm shadow-lg border-l-4 border-teal-600" class="w-full max-w-4xl bg-white/80 dark:bg-slate-800/80 backdrop-blur-sm shadow-lg border-l-4 border-teal-600"
> >
@@ -1084,9 +1072,12 @@ onMounted(async () => {
// Animate transition words // Animate transition words
const transitionWords = gsap.utils.toArray<HTMLElement>(".transition-words") const transitionWords = gsap.utils.toArray<HTMLElement>(".transition-words")
transitionWords.forEach((transition) => { transitionWords.forEach((transition) => {
gsap.from(transition, { gsap.fromTo(transition, {
opacity: 0, opacity: 0,
y: 30, y: 30
}, {
opacity: 0.7,
y: 0,
duration: 0.6, duration: 0.6,
ease: "power2.out", ease: "power2.out",
scrollTrigger: { scrollTrigger: {
@@ -1537,6 +1528,13 @@ definePageMeta({
</script> </script>
<style scoped> <style scoped>
.rewind-bg {
background-image: radial-gradient(circle at top left, rgba(147, 197, 253, 0.1), transparent 30%),
radial-gradient(circle at bottom right, rgba(244, 114, 182, 0.1), transparent 30%);
background-attachment: fixed;
min-height: 100vh;
}
.floating-emoji { .floating-emoji {
position: absolute; position: absolute;
pointer-events: none; pointer-events: none;
@@ -1580,18 +1578,7 @@ definePageMeta({
} }
.transition-words { .transition-words {
animation: fadeInUp 0.8s ease-out; transform: translateY(20px);
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 0.7;
transform: translateY(0);
}
} }
@keyframes pulse-slow { @keyframes pulse-slow {
@@ -1607,11 +1594,3 @@ definePageMeta({
animation: pulse-slow 3s ease-in-out infinite; animation: pulse-slow 3s ease-in-out infinite;
} }
</style> </style>
<style>
body {
background-image: radial-gradient(circle at top left, rgba(147, 197, 253, 0.1), transparent 30%),
radial-gradient(circle at bottom right, rgba(244, 114, 182, 0.1), transparent 30%);
background-attachment: fixed;
}
</style>

View File

@@ -123,6 +123,7 @@ export interface SnRewind {
id: string id: string
year: number year: number
schemaVersion: number schemaVersion: number
sharableCode: string | null
data: { data: {
pass: SnRewindActiveData pass: SnRewindActiveData
sphere: SnRewindSocialData sphere: SnRewindSocialData