From bcbdff8768ccb7970ceb038d1120dda6d6617dad Mon Sep 17 00:00:00 2001 From: Tim <135014430+nagisa77@users.noreply.github.com> Date: Sat, 16 Aug 2025 17:57:42 +0800 Subject: [PATCH] feat: initialize frosted glass setting --- frontend_nuxt/app.vue | 2 +- frontend_nuxt/assets/global.css | 13 ++++ frontend_nuxt/components/BasePopup.vue | 4 +- frontend_nuxt/components/HeaderComponent.vue | 2 +- frontend_nuxt/components/LoginOverlay.vue | 2 +- frontend_nuxt/pages/settings.vue | 65 +++++++++++++++++++- frontend_nuxt/plugins/frosted.client.ts | 6 ++ frontend_nuxt/utils/frosted.js | 26 ++++++++ frontend_nuxt/utils/theme.js | 2 +- 9 files changed, 115 insertions(+), 7 deletions(-) create mode 100644 frontend_nuxt/plugins/frosted.client.ts create mode 100644 frontend_nuxt/utils/frosted.js diff --git a/frontend_nuxt/app.vue b/frontend_nuxt/app.vue index e55367988..8148fe4c9 100644 --- a/frontend_nuxt/app.vue +++ b/frontend_nuxt/app.vue @@ -131,7 +131,7 @@ const goToNewPost = () => { cursor: pointer; z-index: 1000; display: flex; - backdrop-filter: blur(5px); + backdrop-filter: var(--blur-5); justify-content: center; align-items: center; } diff --git a/frontend_nuxt/assets/global.css b/frontend_nuxt/assets/global.css index dcf0b3371..910125d06 100644 --- a/frontend_nuxt/assets/global.css +++ b/frontend_nuxt/assets/global.css @@ -7,6 +7,11 @@ --header-background-color: white; --header-border-color: lightgray; --header-text-color: black; + --blur-1: blur(1px); + --blur-2: blur(2px); + --blur-4: blur(4px); + --blur-5: blur(5px); + --blur-10: blur(10px); /* 加一个app前缀防止与firefox的userChrome.css中的--menu-background-color冲突 */ --app-menu-background-color: white; --background-color: white; @@ -59,6 +64,14 @@ --activity-card-background-color: #585858; } +:root[data-frosted='off'] { + --blur-1: none; + --blur-2: none; + --blur-4: none; + --blur-5: none; + --blur-10: none; +} + body { margin: 0; padding: 0; diff --git a/frontend_nuxt/components/BasePopup.vue b/frontend_nuxt/components/BasePopup.vue index a4ed47b68..16c42c2f1 100644 --- a/frontend_nuxt/components/BasePopup.vue +++ b/frontend_nuxt/components/BasePopup.vue @@ -41,8 +41,8 @@ export default { left: 0; right: 0; bottom: 0; - backdrop-filter: blur(2px); - -webkit-backdrop-filter: blur(2px); + backdrop-filter: var(--blur-2); + -webkit-backdrop-filter: var(--blur-2); } .popup-content { position: relative; diff --git a/frontend_nuxt/components/HeaderComponent.vue b/frontend_nuxt/components/HeaderComponent.vue index 32b18a1e1..bb4cf2fc9 100644 --- a/frontend_nuxt/components/HeaderComponent.vue +++ b/frontend_nuxt/components/HeaderComponent.vue @@ -188,7 +188,7 @@ onMounted(async () => { justify-content: center; height: var(--header-height); background-color: var(--background-color-blur); - backdrop-filter: blur(10px); + backdrop-filter: var(--blur-10); color: var(--header-text-color); border-bottom: 1px solid var(--header-border-color); } diff --git a/frontend_nuxt/components/LoginOverlay.vue b/frontend_nuxt/components/LoginOverlay.vue index e2fd9fe0e..e1a7907b7 100644 --- a/frontend_nuxt/components/LoginOverlay.vue +++ b/frontend_nuxt/components/LoginOverlay.vue @@ -35,7 +35,7 @@ const goLogin = () => { left: 0; right: 0; bottom: 0; - backdrop-filter: blur(4px); + backdrop-filter: var(--blur-4); z-index: 1; } diff --git a/frontend_nuxt/pages/settings.vue b/frontend_nuxt/pages/settings.vue index 5b94f2ae0..7178ee347 100644 --- a/frontend_nuxt/pages/settings.vue +++ b/frontend_nuxt/pages/settings.vue @@ -36,6 +36,13 @@
自我介绍会出现在你的个人主页,可以简要介绍自己
+
+
毛玻璃效果
+ +

管理员设置

@@ -65,12 +72,13 @@