From f1a7285784ab4dd2196571629cdf1d764713f67f Mon Sep 17 00:00:00 2001 From: shiran <2488252513@qq.com> Date: Thu, 26 Feb 2026 15:12:20 +0800 Subject: [PATCH] =?UTF-8?q?refactor(common):=20=E4=BC=98=E5=8C=96=E5=A4=B4?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E4=B8=AD=E7=9A=84=E5=8A=A8=E6=80=81=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将原有的静态样式注入改为动态JavaScript生成 - 添加了对玻璃态效果选择器的动态处理支持 - 添加了对卡片项目选择器的动态处理支持 - 实现了多选择器的自动分割和格式化功能 - 提升了样式的灵活性和可维护性 - 减少了HTML模板中的重复代码块 --- common/head_tag.hbs | 75 +++++++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/common/head_tag.hbs b/common/head_tag.hbs index c97af7d..a7f3998 100644 --- a/common/head_tag.hbs +++ b/common/head_tag.hbs @@ -4,34 +4,51 @@ window.I18n.translations[I18n.locale].js.browser_update = 'The Horizon theme does not support your browser. Please update your browser, or switch to safe mode.'; } + + // 处理动态样式 + (() => { + const glassSelectors = "{{settings.extra_glass_morphism_selectors}}".trim(); + const cardSelectors = "{{settings.extra_card_item_selectors}}".trim(); + + let styles = ''; + + if (glassSelectors) { + const selectors = glassSelectors.split('\n').filter(s => s.trim()).map(s => s.trim()).join(', '); + styles += ` + ${selectors} { + background-color: #ffffffa8 !important; + border-radius: var(--d-border-radius); + backdrop-filter: blur(32px); + box-shadow: #00000077 0 0 19px 0; + padding: 24px; + } + `; + } + + if (cardSelectors) { + const selectors = cardSelectors.split('\n').filter(s => s.trim()).map(s => s.trim()).join(', '); + styles += ` + ${selectors} { + background: var(--d-chat-input-bg-color); + border-radius: var(--d-border-radius); + box-shadow: #00000024 0 0 7px 2px; + margin: 10px 0; + position: relative; + padding: 16px 12px; + overflow: hidden; + transition: background-color 0.2s ease-in-out; + } + ${selectors}:hover { + background-color: var(--accent-text-color); + } + `; + } + + if (styles) { + const styleEl = document.createElement('style'); + styleEl.textContent = styles; + document.head.appendChild(styleEl); + } + })(); -{{#if settings.extra_glass_morphism_selectors}} - -{{/if}} - -{{#if settings.extra_card_item_selectors}} - -{{/if}}