:root { --body-background-color: #333333; --main-text-color: #ffffff; --main-text-hover-color: #555555; --main-background-color: #00000040; --main-background-light-color: #ffffff30; --main-background-hover-color: #ffffff; --main-text-shadow: 0px 0px 8px #00000066; } * { margin: 0; padding: 0; user-select: none; } html, body { width: 100%; height: 100%; background-color: var(--body-background-color); overflow: hidden; font-family: "HarmonyOS_Regular", sans-serif; } #app { width: 100vw; height: 100vh; } ::selection { color: var(--main-text-color); background-color: var(--main-text-hover-color); } // Transition 动画 .fade-enter-active, .fade-leave-active { transition: opacity 0.3s ease; } .fade-enter-from, .fade-leave-to { opacity: 0; } .fadeUp-enter-active, .fadeUp-leave-active { transition: opacity 0.3s ease, transform 0.3s ease; } .fadeUp-enter-from, .fadeUp-leave-to { opacity: 0; transform: translateY(10px); } .show-enter-active, .show-leave-active { transition: opacity 0.25s ease, transform 0.25s ease-in-out; } .show-enter-from, .show-leave-to { opacity: 0; transform: scale(0.6); } // 全局动画 @keyframes fade-up-in { 0% { opacity: 0; } 30% { opacity: 0; transform: translateY(30px); } 100% { opacity: 1; transform: translateY(0); } } @keyframes fade-time-in { 0% { opacity: 0; } 20% { opacity: 0; transform: translateY(-90px); } 100% { opacity: 1; transform: translateY(-140px); } } @keyframes fade-blur-in { from { filter: blur(20px) brightness(0.4); transform: scale(1.2); } to { filter: blur(0) brightness(1); transform: scale(1); } } @keyframes separator-breathe { 0% { opacity: 0.8; } 70% { opacity: 0.8; } 100% { opacity: 0.2; } } @keyframes logo-breathe { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }