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..d0967523c 100644 --- a/frontend_nuxt/assets/global.css +++ b/frontend_nuxt/assets/global.css @@ -7,11 +7,15 @@ --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; - /* --background-color-blur: rgba(255, 255, 255, 0.57); */ - --background-color-blur: var(--background-color); + --background-color-blur: rgba(255, 255, 255, 0.57); --menu-border-color: lightgray; --normal-border-color: lightgray; --menu-selected-background-color: rgba(208, 250, 255, 0.659); @@ -59,6 +63,15 @@ --activity-card-background-color: #585858; } +:root[data-frosted='off'] { + --blur-1: none; + --blur-2: none; + --blur-4: none; + --blur-5: none; + --blur-10: none; + --background-color-blur: var(--background-color); +} + 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..5aec0bb28 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); } @@ -210,6 +210,7 @@ onMounted(async () => { width: 100%; height: 100%; max-width: var(--page-max-width); + backdrop-filter: var(--blur-10); } .header-content-left { @@ -317,7 +318,6 @@ onMounted(async () => { .new-post-icon { font-size: 18px; cursor: pointer; - margin-right: 10px; } @media (max-width: 1200px) { 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/components/MenuComponent.vue b/frontend_nuxt/components/MenuComponent.vue index 1102afc23..9f5aa53db 100644 --- a/frontend_nuxt/components/MenuComponent.vue +++ b/frontend_nuxt/components/MenuComponent.vue @@ -239,6 +239,7 @@ const gotoTag = (t) => { flex-direction: column; overflow-y: auto; scrollbar-width: none; + backdrop-filter: var(--blur-10); } .menu-content { diff --git a/frontend_nuxt/components/ToolTip.vue b/frontend_nuxt/components/ToolTip.vue index 174e9f578..5b67cff4c 100644 --- a/frontend_nuxt/components/ToolTip.vue +++ b/frontend_nuxt/components/ToolTip.vue @@ -3,304 +3,379 @@
- - - - diff --git a/frontend_nuxt/pages/index.vue b/frontend_nuxt/pages/index.vue index bb8eee891..f324116d6 100644 --- a/frontend_nuxt/pages/index.vue +++ b/frontend_nuxt/pages/index.vue @@ -147,9 +147,17 @@ const categoryOptions = ref([]) const isLoadingMore = ref(false) const topics = ref(['最新回复', '最新', '排行榜' /*, '热门', '类别'*/]) +const selectedTopicCookie = useCookie('homeTab') const selectedTopic = ref( - route.query.view === 'ranking' ? '排行榜' : route.query.view === 'latest' ? '最新' : '最新回复', + selectedTopicCookie.value + ? selectedTopicCookie.value + : route.query.view === 'ranking' + ? '排行榜' + : route.query.view === 'latest' + ? '最新' + : '最新回复', ) +if (!selectedTopicCookie.value) selectedTopicCookie.value = selectedTopic.value const articles = ref([]) const page = ref(0) const pageSize = 10 @@ -175,6 +183,11 @@ onMounted(() => { const { category, tags } = route.query if (category) selectedCategorySet(category) if (tags) selectedTagsSet(tags) + + const saved = localStorage.getItem('homeTab') + if (saved) { + selectedTopic.value = saved + } }) /** 路由变更时同步筛选 **/ @@ -340,9 +353,13 @@ watch( watch([selectedCategory, selectedTags], () => { loadOptions() }) -watch(selectedTopic, () => { +watch(selectedTopic, (val) => { // 仅当需要额外选项时加载 loadOptions() + selectedTopicCookie.value = val + if (process.client) { + localStorage.setItem('homeTab', val) + } }) /** 选项首屏加载:服务端执行一次;客户端兜底 **/ @@ -417,6 +434,7 @@ const sanitizeDescription = (text) => stripMarkdown(text) gap: 10px; width: 100%; padding: 10px 0; + backdrop-filter: var(--blur-10); } .topic-item-container { diff --git a/frontend_nuxt/pages/login.vue b/frontend_nuxt/pages/login.vue index 2a7af7bc6..518a0b1bf 100644 --- a/frontend_nuxt/pages/login.vue +++ b/frontend_nuxt/pages/login.vue @@ -27,6 +27,10 @@ >找回密码 +
+ + 使用右侧第三方OAuth注册/登录的用户可使用对应的邮箱进行重设密码 +
@@ -259,6 +263,11 @@ const loginWithTwitter = () => { color: var(--primary-color); } +.hint-message { + font-size: 12px; + opacity: 0.7; +} + @media (max-width: 768px) { .login-page { flex-direction: column; diff --git a/frontend_nuxt/pages/message.vue b/frontend_nuxt/pages/message.vue index 9b189526f..0755fcd09 100644 --- a/frontend_nuxt/pages/message.vue +++ b/frontend_nuxt/pages/message.vue @@ -649,6 +649,7 @@ onActivated(() => { flex-direction: row; justify-content: space-between; align-items: center; + backdrop-filter: var(--blur-10); } .message-page-header-right { 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 @@