2025-12-04 10:04:21 +08:00

88 lines
2.5 KiB
Vue

<template>
<NuxtLayout>
<FlashBanner />
<NuxtPage />
</NuxtLayout>
</template>
<script setup>
import FlashBanner from '~/components/FlashBanner.vue'
</script>
<style>
:root {
--soft-page-bg: radial-gradient(circle at 20% 20%, rgba(99, 102, 241, 0.08), transparent 28%),
radial-gradient(circle at 80% 10%, rgba(16, 185, 129, 0.08), transparent 30%),
linear-gradient(180deg, #f8fbff, #f3f5f8);
/* --- Nebula Glass Tokens --- */
/* Colors */
--color-primary-start: #8b5cf6; /* Electric Purple */
--color-primary-end: #3b82f6; /* Neon Blue */
--color-accent-beam: #a855f7; /* Neon Purple Beam */
--color-text-main: #1e293b; /* Slate 800 */
--color-text-sub: #64748b; /* Slate 500 */
--color-text-active: #ffffff;
--color-glass-bg: rgba(255, 255, 255, 0.65);
--color-glass-border: rgba(255, 255, 255, 0.8);
--color-glass-hover: rgba(255, 255, 255, 0.85);
/* Dimensions */
--sidebar-width-expanded: 80px;
--sidebar-width-collapsed: 72px;
--sidebar-radius: 40px; /* Super Capsule */
--card-radius-lg: 24px;
--card-radius-md: 16px;
--card-radius-sm: 12px;
/* Shadows */
--shadow-glass-floating:
0 10px 30px -10px rgba(68, 70, 245, 0.15),
0 4px 6px -2px rgba(0, 0, 0, 0.05);
--shadow-glass-hover:
0 20px 40px -10px rgba(68, 70, 245, 0.25),
0 8px 12px -4px rgba(0, 0, 0, 0.1);
--shadow-neon-glow: 0 0 12px rgba(168, 85, 247, 0.6);
/* Transitions */
--ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
--ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
--duration-normal: 0.3s;
/* --- Home Plaza Redesign Tokens --- */
--color-bg-plaza: #ffffff;
--color-bg-list-card: #f8fafc;
--color-border-light: #f1f5f9;
--grad-feature-overlay: linear-gradient(135deg, rgba(236, 72, 153, 0.85), rgba(59, 130, 246, 0.85));
--grad-primary-btn: linear-gradient(135deg, #6366f1, #8b5cf6);
--shadow-card-hover: 0 20px 40px rgba(0, 0, 0, 0.08);
--shadow-btn: 0 4px 12px rgba(99, 102, 241, 0.3);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
--duration-hover: 0.3s;
}
.article-root {
background: var(--soft-page-bg);
}
html,body,#__nuxt{ margin: 0;padding: 0; }
/* 禁用默认的页面转场动画,使用自定义的共享元素转场 */
.article-card-enter-active,
.article-card-leave-active {
transition: none !important;
}
.article-card-enter-from,
.article-card-leave-to,
.article-card-enter-to,
.article-card-leave-from {
opacity: 1 !important;
transform: none !important;
}
</style>