fix: adapt glassmorphism for light theme (stronger dark corners, white edge)

This commit is contained in:
Aisland
2026-08-21 12:10:20 +08:00
parent 6834ba3fd7
commit e95eda9292
3 changed files with 17 additions and 3 deletions
+3 -3
View File
@@ -394,8 +394,8 @@ export const css = xtermCss + '\n' + [
'.dsh-wt_consoleCard{position:relative;display:flex;flex-direction:column;gap:14px;aspect-ratio:1/1;min-height:192px;padding:21px;background:linear-gradient(135deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.02) 34%,rgba(0,0,0,.10) 100%),rgba(23,28,37,.5);backdrop-filter:blur(16px) saturate(1.25);-webkit-backdrop-filter:blur(16px) saturate(1.25);border:1px solid transparent;border-radius:16px;box-shadow:0 10px 28px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.07);cursor:pointer;transition:transform .14s ease,box-shadow .14s ease;overflow:hidden}',
// 玻璃边缘:四角黑白渐变描边(左上/右下=白,右上/左下=黑),1px 环挖空实现
'.dsh-wt_consoleCard::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:conic-gradient(from 45deg,rgba(0,0,0,.4) 0deg,rgba(255,255,255,.55) 90deg,rgba(0,0,0,.4) 180deg,rgba(255,255,255,.55) 270deg,rgba(0,0,0,.4) 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;opacity:.5}',
'.dsh-wt_console[data-wt-theme=light] .dsh-wt_consoleCard{background:linear-gradient(135deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.45) 40%,rgba(31,41,55,.05) 100%),rgba(255,255,255,.5);box-shadow:0 10px 28px rgba(31,41,55,.12),inset 0 1px 0 rgba(255,255,255,.9)}',
'.dsh-wt_console[data-wt-theme=light] .dsh-wt_consoleCard::after{background:conic-gradient(from 45deg,rgba(27,31,36,.24) 0deg,rgba(255,255,255,.95) 90deg,rgba(27,31,36,.24) 180deg,rgba(255,255,255,.95) 270deg,rgba(27,31,36,.24) 360deg);opacity:.85}',
'.dsh-wt_console[data-wt-theme=light] .dsh-wt_consoleCard{background:linear-gradient(135deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.35) 40%,rgba(31,41,55,.06) 100%),rgba(255,255,255,.55);box-shadow:0 10px 28px rgba(31,41,55,.18),inset 0 1px 0 rgba(255,255,255,1)}',
'.dsh-wt_console[data-wt-theme=light] .dsh-wt_consoleCard::after{background:conic-gradient(from 45deg,rgba(27,31,36,.4) 0deg,rgba(255,255,255,1) 90deg,rgba(27,31,36,.4) 180deg,rgba(255,255,255,1) 270deg,rgba(27,31,36,.4) 360deg);opacity:.9}',
// 状态光效卡片:玻璃边缘让位给霓虹描边/旋转光环
'.dsh-wt_consoleCard-glowDone::after,.dsh-wt_consoleCard-glowNeed::after{opacity:0}',
'.dsh-wt_consoleCard:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.09)}',
@@ -428,7 +428,7 @@ export const css = xtermCss + '\n' + [
// 创建卡片:玻璃底 + 虚线边,永远最后一位
'.dsh-wt_consoleAdd{justify-content:center;align-items:center;gap:10px;background:rgba(23,28,37,.3);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1.5px dashed var(--wt-borderHover)}',
'.dsh-wt_consoleAdd::after{display:none}',
'.dsh-wt_console[data-wt-theme=light] .dsh-wt_consoleAdd{background:rgba(255,255,255,.35)}',
'.dsh-wt_console[data-wt-theme=light] .dsh-wt_consoleAdd{background:rgba(255,255,255,.45)}',
'.dsh-wt_consoleAdd:hover{border-color:var(--dsw-alias-state-accent-primary,#4f8ef7);background:rgba(23,28,37,.45)}',
'.dsh-wt_consoleAddPlus{font-size:34px;line-height:1;color:var(--wt-text2);font-weight:400}',
'.dsh-wt_consoleAdd:hover .dsh-wt_consoleAddPlus{color:var(--dsw-alias-state-accent-primary,#4f8ef7)}',
@@ -1307,3 +1307,14 @@
conic 四角渐变(opacity .5)✓;全流程 + 光效 + 主题 ✓;functional-diag 全 20 STEP
ERROR_COUNT: 0。
- 备注:纯客户端改动,F5 即生效。
## 补记(控制室第七轮附:日间玻璃适配加强)
- 用户反馈:夜间模式玻璃效果好,日间模式没适配——白玻璃上白角不可见、黑角太淡,
玻璃感消失。
- 实现:浅色主题玻璃加强——黑角 rgba(27,31,36,.24→.4)、白角提到纯白 1、边缘 opacity
.85→.9;内部高光调整(白 85%→35% + 底灰 6%)、底半透明 rgba(255,255,255,.55)、
阴影加深 rgba(31,41,55,.18) + 顶部 1px 纯白内高光;创建卡浅色底 .35→.45。
- 验证(probe-batch16 更新):cardBgLight rgba(255,255,255,.55) ✓、lightSheen /
lightEdge(黑角 .4)+ opacity .9 ✓;functional-diag 全 20 STEP ERROR_COUNT: 0。
- 备注:纯客户端改动,F5 即生效。
+3
View File
@@ -318,6 +318,9 @@ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
await sleep(400);
out.themeAttrLight = con ? con.getAttribute('data-wt-theme') : null;
out.cardBgLight = cc ? getComputedStyle(cc).backgroundColor : null;
out.lightSheen = cc ? getComputedStyle(cc).backgroundImage.slice(0, 70) : null;
out.lightEdge = cc ? getComputedStyle(cc, '::after').backgroundImage.slice(0, 70) : null;
out.lightEdgeOpacity = cc ? getComputedStyle(cc, '::after').opacity : null;
if (btns[2]) { btns[2].dispatchEvent(new MouseEvent('click', {bubbles:true, cancelable:true})); }
await sleep(400);
out.themeAttrSystem = con ? con.getAttribute('data-wt-theme') : null;