diff --git a/frontend/app/(main)/settings/notifications/page.tsx b/frontend/app/(main)/settings/notifications/page.tsx
new file mode 100644
index 00000000..f074147d
--- /dev/null
+++ b/frontend/app/(main)/settings/notifications/page.tsx
@@ -0,0 +1,5 @@
+import { NotificationsMain } from "@/components/common/settings/notifications"
+
+export default function NotificationsPage() {
+ return
+}
diff --git a/frontend/app/globals.css b/frontend/app/globals.css
index 5b192e7d..33d51423 100644
--- a/frontend/app/globals.css
+++ b/frontend/app/globals.css
@@ -174,4 +174,23 @@
0% { transform: translateY(0) scale(1); opacity: 1; }
100% { transform: translateY(-100px) scale(0); opacity: 0; }
}
+
+ /*
+ * 铃铛响铃动画配置
+ * 使用微妙的摆动效果,优雅且不过度
+ */
+ --animate-bell-ring: bell-ring 0.6s cubic-bezier(0.36, 0.07, 0.19, 0.97);
+
+ @keyframes bell-ring {
+ 0% { transform: rotate(0deg); }
+ 10% { transform: rotate(14deg); }
+ 20% { transform: rotate(-12deg); }
+ 30% { transform: rotate(10deg); }
+ 40% { transform: rotate(-8deg); }
+ 50% { transform: rotate(6deg); }
+ 60% { transform: rotate(-4deg); }
+ 70% { transform: rotate(2deg); }
+ 80% { transform: rotate(-1deg); }
+ 100% { transform: rotate(0deg); }
+ }
}
\ No newline at end of file
diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx
index 88a5e337..f2f2f369 100644
--- a/frontend/app/layout.tsx
+++ b/frontend/app/layout.tsx
@@ -3,6 +3,8 @@ import { Inter, Noto_Sans_SC, Geist_Mono } from 'next/font/google';
import { Toaster } from "@/components/ui/sonner";
import { ThemeProvider } from "@/components/layout/theme-provider";
import { CustomThemeProvider } from "@/lib/theme";
+import { BellRingProvider } from "@/contexts/bell-ring-context";
+import { NotificationSettingsProvider } from "@/contexts/notification-settings-context";
import "./globals.css";
const inter = Inter({
@@ -49,8 +51,12 @@ export default function RootLayout({
disableTransitionOnChange
>
- {children}
-
+
+
+ {children}
+
+
+