From 5f017dcee7da14d83413ee54e16cd86a05122c15 Mon Sep 17 00:00:00 2001 From: Peanut Date: Sun, 15 Mar 2026 09:28:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=20AI=20=E5=8D=A1=E7=89=87=E5=B7=A6=E4=BE=A7?= =?UTF-8?q?=E8=BE=B9=E6=A1=86=E5=92=8C=E6=89=93=E5=AD=97=E6=9C=BA=E5=8A=A8?= =?UTF-8?q?=E7=94=BB=EF=BC=88=E5=8E=9F=E5=9E=8B=E8=BF=98=E5=8E=9F=2075%?= =?UTF-8?q?=E2=86=9290%=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mini-program/src/pages/main/RecordView.vue | 48 ++++++++++++++++++---- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/mini-program/src/pages/main/RecordView.vue b/mini-program/src/pages/main/RecordView.vue index 529cb87..dfa7a11 100644 --- a/mini-program/src/pages/main/RecordView.vue +++ b/mini-program/src/pages/main/RecordView.vue @@ -238,12 +238,23 @@ onMounted(() => { } .ai-reply { - background: rgba(168, 85, 247, 0.08); - border: 1px solid rgba(168, 85, 247, 0.25); + background: rgba(168, 85, 247, 0.05); + backdrop-filter: blur(20px); + -webkit-backdrop-filter: blur(20px); + border: 1px solid rgba(168, 85, 247, 0.15); + border-left: 4rpx solid #C084FC; + box-shadow: 0 0 20px rgba(168, 85, 247, 0.1), + inset 0 0 15rpx rgba(168, 85, 247, 0.03); border-radius: 20rpx; - padding: 24rpx; - box-shadow: 0 0 20px rgba(168, 85, 247, 0.1); - margin-top: 16rpx; + padding: 28rpx; + margin-top: 24rpx; + transition: all 0.3s ease; +} + +.ai-reply:active { + transform: scale(0.98); + box-shadow: 0 0 12px rgba(168, 85, 247, 0.08), + inset 0 0 10rpx rgba(168, 85, 247, 0.02); } .ai-header { @@ -270,14 +281,33 @@ onMounted(() => { color: rgba(243, 232, 255, 0.8); font-style: italic; line-height: 1.5; + overflow: hidden; } .ai-content.typing { - animation: typing 2s ease-out; + animation: typing-reveal 2.5s cubic-bezier(0.4, 0, 0.2, 1), + glow-pulse 2s ease-in-out infinite 1s; } -@keyframes typing { - from { opacity: 0; transform: translateY(10rpx); } - to { opacity: 1; transform: translateY(0); } +@keyframes typing-reveal { + from { + opacity: 0; + transform: translateY(8rpx); + filter: blur(4rpx); + } + to { + opacity: 1; + transform: translateY(0); + filter: blur(0); + } +} + +@keyframes glow-pulse { + 0%, 100% { + text-shadow: 0 0 4rpx rgba(192, 132, 252, 0.3); + } + 50% { + text-shadow: 0 0 8rpx rgba(192, 132, 252, 0.6); + } }