@nonamelego/dsh-catppuccin 0.6.6-beta.1 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +4 -1
- package/README.md +6 -0
- package/lib/client.js +210 -18
- package/lib/client.js.map +1 -1
- package/lib/index.js +8 -2
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/README.en.md
CHANGED
|
@@ -262,7 +262,10 @@ The **Glass** section lives on the **Settings → Catppuccin** page:
|
|
|
262
262
|
collapses back to pure white / pure black.
|
|
263
263
|
- **Ground glows**: adds two screen-pinned soft glows on top of the ground (the `0.6.3` look),
|
|
264
264
|
**off by default** — they do not follow the panes, so each pane transmits a different slice
|
|
265
|
-
of them and the top-left corner brightens visibly when on.
|
|
265
|
+
of them and the top-left corner brightens visibly when on. Once on, a **glow strength** knob
|
|
266
|
+
(0–200%, `100%` = that look and the default; the ceiling is a conservative
|
|
267
|
+
contrast budget on Latte, see `docs/issue-32-glow-tuning.md`) scales the two glows only — the wash is never touched, and at either end of the
|
|
268
|
+
brightness knob the ambience collapses and the glows fade out with it.
|
|
266
269
|
- **In-place previews**: a **ground sample strip** in the glass section (drag brightness or
|
|
267
270
|
toggle the glows and it changes on the spot — it is painted by the page ground's own rule);
|
|
268
271
|
a **code sample** under the highlight picker (reads `--shiki-token-*`, so switching to
|
package/README.md
CHANGED
|
@@ -229,8 +229,14 @@ dsh plugin --profile dsh-tui add https://github.com/NoNameLeGo/dsh-catppuccin-th
|
|
|
229
229
|
不透明度。
|
|
230
230
|
- **背景亮度**:深色模式 0–50 压暗、浅色模式 50–100 提亮(50 为原样),
|
|
231
231
|
直接调和进地面底色;拉到两端时氛围层淡出,回到纯白 / 纯黑。
|
|
232
|
+
- **卡片间距**(4–24 px,**仅云母**):悬浮卡与窗口边缘的留白,另附**紧凑 / 标准 / 宽松**三档
|
|
233
|
+
(8 / 12 / 20 px,默认标准)。只改外边距,正文列宽不变——间距是从侧栏列里扣的,所以**侧栏卡自身会变窄**;
|
|
234
|
+
折叠侧栏时窄轨最多向右探出 16px(再大会压住正文)。兼容模式与这个旋钮无关,设置里也会一并隐藏。
|
|
232
235
|
- **地面光斑**:在地面渐变上叠两枚**固定于屏幕**的柔光斑(`0.6.3` 的观感),**默认关**——
|
|
233
236
|
光斑不跟面板走,每块玻璃透出的是它的不同部位,打开后左上角会明显偏亮。
|
|
237
|
+
打开后还有 **光斑强度**(0–200%,`100%` 就是上述观感,默认值;上限是**保守值**,按 Latte 上文字的
|
|
238
|
+
对比度预算定,见 `docs/issue-32-glow-tuning.md`)——
|
|
239
|
+
强度只放大两枚光斑,**不动**洗底渐变;背景亮度拉到两端时氛围归零,光斑随之淡出。
|
|
234
240
|
- **就地预览**:玻璃区里有一条**地面样本条**(拖亮度或切光斑,它当场变化——取的就是页面地面那套色);
|
|
235
241
|
代码高亮下方有**代码样本**(直接读 `--shiki-token-*`,切「柔和注释」即刻变色);
|
|
236
242
|
模式选择旁的 **看一眼主界面** 会关掉设置页,让你直接看真实布局。
|
package/lib/client.js
CHANGED
|
@@ -534,7 +534,7 @@ window.__ModuleLoader__.load({
|
|
|
534
534
|
* (item II — lazy CSS), so editing the stylesheet means editing
|
|
535
535
|
* glass.module.css and rebuilding.
|
|
536
536
|
*/
|
|
537
|
-
const GLASS_CSS_TEXT = "[data-dsh-glass] body{--dsh-glass-card:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(52% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-card-raised:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(64% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-card-hover:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(76% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-rim:color-mix(in srgb, var(--dsw-alias-label-primary) 18%, transparent);--dsh-glass-rim-soft:color-mix(in srgb, var(--dsw-alias-label-primary) 12%, transparent);--dsh-glass-rim-strong:color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);--dsh-glass-edge:inset 0 1px 0 #ffffff6b;--dsh-glass-drop:0 10px 32px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 38%, transparent);--dsh-glass-input-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 65%, transparent), 0 8px 24px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 80%, transparent);--dsh-glass-ground:color-mix(in srgb, color-mix(in srgb, var(--dsw-alias-bg-base), #fff calc(var(--dsh-glass-brightness-white,0) * 100%)), #000 calc(var(--dsh-glass-brightness-black,0) * 100%));--dsh-glass-ambience:calc(1 - var(--dsh-glass-brightness-white,0) - var(--dsh-glass-brightness-black,0));--dsh-glass-wash-tint:#fff;--dsh-glass-wash-mix:22%}[data-dsh-glass] body[data-ds-dark-theme]{--dsh-glass-rim:color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);--dsh-glass-rim-soft:color-mix(in srgb, var(--dsw-alias-label-primary) 16%, transparent);--dsh-glass-rim-strong:color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);--dsh-glass-edge:inset 0 1px 0 #ffffff14;--dsh-glass-drop:0 10px 32px #02060e73;--dsh-glass-input-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 65%, transparent), 0 8px 24px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 80%, transparent);--dsh-glass-wash-tint:var(--dsw-alias-bg-layer-1);--dsh-glass-wash-mix:68%}[data-dsh-glass] body,[data-dsh-glass] [data-dsh-glass-ground-sample]{background: radial-gradient(58% 46% at 18% 6%, color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) calc(12% * var(--dsh-glass-ambience) * var(--dsh-glass-glow,0)), transparent), transparent 68%), radial-gradient(48% 42% at 86% 14%, color-mix(in srgb, var(--dsw-alias-state-success-tertiary) calc(10% * var(--dsh-glass-ambience) * var(--dsh-glass-glow,0)), transparent), transparent 62%), linear-gradient(165deg, color-mix(in srgb, var(--dsh-glass-ground), var(--dsh-glass-wash-tint) calc(var(--dsh-glass-wash-mix) * var(--dsh-glass-ambience))) 0%, var(--dsh-glass-ground) 55%, color-mix(in srgb, var(--dsh-glass-ground), #000 calc(5% * var(--dsh-glass-ambience))) 100%)}[data-dsh-glass] [data-dsh-glass-frame],[data-dsh-glass] [data-phase],[data-dsh-glass] [data-dsh-glass-details],[data-dsh-glass-float] [data-dsh-glass-frame]>[class*=centerCol]{background:0 0}[data-dsh-glass-float] [data-phase=active] header{z-index:8;position:relative}[data-dsh-glass-float] [class*=banner]{position:static}[data-dsh-glass-float] [data-phase=active] [data-conversation-scroll]{margin-top:-95px;padding-top:107px}[data-dsh-glass] [data-phase] [class*=composerSeat][class*=composerSeat]{background:0 0}[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[class*=dock],[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[data-composer-dock]{position:relative}[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[class*=dock]:before,[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[data-composer-dock]:before{content:\"\";left:calc(-1 * var(--dsh-composer-side-clearance,16px));right:calc(-1 * var(--dsh-composer-side-clearance,16px));z-index:-1;pointer-events:none;background:color-mix(in srgb, color-mix(in srgb, var(--dsh-glass-ground), #000 calc(5% * var(--dsh-glass-ambience))) calc(70% + 10% * var(--dsh-glass-frost,1)), transparent);height:calc(100% + 12px);backdrop-filter:blur(var(--dsh-glass-blur,14px));position:absolute;bottom:-4px;-webkit-mask-image:linear-gradient(#0000 0,#000 18px);mask-image:linear-gradient(#0000 0,#000 18px)}[data-dsh-glass] [data-dsh-glass-fade]{z-index:7;pointer-events:none;backdrop-filter:blur(5px);background:#ffffff2e;height:13px;position:fixed;left:0;right:0}[data-dsh-glass] body[data-ds-dark-theme] [data-dsh-glass-fade]{background:#00000024}[data-dsh-glass] [data-dsh-glass-fade=top]{top:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 100%);mask-image:linear-gradient(#000 0%,#0000 100%)}[data-dsh-glass][data-windows-titlebar] [data-dsh-glass-fade=top]{display:none}[data-dsh-glass] [data-dsh-glass-fade=bottom]{bottom:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 100%);mask-image:linear-gradient(#0000 0%,#000 100%)}[data-dsh-glass-float] [data-menu-material=translucent],[data-dsh-glass-float] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-float] [role=dialog],[data-dsh-glass-float] [role=alert],[data-dsh-glass-float] [data-trigger-menu],[data-dsh-glass-float] [data-dsh-glass-surface]{border-radius:14px}[data-dsh-glass-float] [role=menuitem],[data-dsh-glass-float] [role=tooltip],[data-dsh-glass-float] [class*=pill]{border-radius:8px}[data-dsh-glass-float] button[class*=button]{border-radius:10px}[data-dsh-glass-float] [class*=iconButton],[data-dsh-glass-float] [class*=searchButton]{border-radius:8px}[data-dsh-glass-float] [class*=block]{--dsl-code-block-border-radius:14px;--dsl-diff-radius:14px;--dsl-read-radius:14px;--dsl-terminal-radius:14px;--dsl-web-radius:14px;--dsl-search-radius:14px;border-radius:14px}[data-dsh-glass-float] [data-dsh-glass-add]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-dsh-glass-add]:hover:not(:disabled){background:var(--dsh-glass-card-hover)}[data-dsh-glass-float] [data-dsh-glass-surface]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim-soft);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-dsh-glass-surface]:hover:not(:disabled){background:var(--dsh-glass-card-hover)}[data-dsh-glass-float] [data-conversation-scroll] [class*=bubble]{border:1px solid var(--dsh-glass-rim-soft);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(46% * var(--dsh-glass-frost,1)), transparent);border-radius:14px}[data-dsh-glass-float] [class*=card]{border-radius:14px}[data-dsh-glass-float] [data-reader-reasoning-card]:not([data-overflow=false][data-expanded=false]),[data-dsh-glass-compat] [data-reader-reasoning-card]:not([data-overflow=false][data-expanded=false]){background:color-mix(in srgb, var(--dsw-alias-bg-module-platform) calc(52% * var(--dsh-glass-frost,1)), transparent);border-color:var(--dsh-glass-rim-soft);border-radius:14px}html[data-dsh-glass-float] [data-changed-files],html[data-dsh-glass-float] [data-presented-file]{--changes-fill:var(--dsh-glass-card);--deliverable-fill:var(--dsh-glass-card);border-color:var(--dsh-glass-rim-soft);border-radius:14px}html[data-dsh-glass-float] [data-presented-file],html[data-dsh-glass-float] [data-changed-files]{background:var(--dsh-glass-card)}html[data-dsh-glass-float] [data-changed-files]>:first-child,html[data-dsh-glass-float] [data-changed-files] ul>li>:first-child,html[data-dsh-glass-float] [data-changed-files] ul{background:0 0}html[data-dsh-glass-float] [data-changed-files] ul{border-top:.5px solid var(--dsh-glass-rim-soft)}html[data-dsh-glass-float] [data-changed-files]>:first-child>:first-child,html[data-dsh-glass-float] [data-presented-file]>:first-child{background:var(--dsh-glass-card-raised)}html[data-dsh-glass-float] [data-turn-trigger]{background:var(--dsh-glass-card);border-color:var(--dsh-glass-rim-soft);border-radius:14px}html[data-dsh-glass-float] [data-turn-trigger]:hover{background:var(--dsh-glass-card-hover)}[data-dsh-glass] [data-dsh-glass-settings]{--dsh-glass-settings-raised:calc(38% + 38% * var(--dsh-glass-frost,1));--dsh-glass-settings-soft:calc(30% + 30% * var(--dsh-glass-frost,1));--dsw-alias-bg-module-platform:color-mix(in srgb, var(--dsw-static-neutral-bluish-800) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-3:color-mix(in srgb, var(--dsw-static-neutral-bluish-800) var(--dsh-glass-settings-soft), transparent);--dsw-alias-bg-layer-2:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-1:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-soft), transparent);--dsw-specific-sidebar-nav-item-active:color-mix(in srgb, var(--dsw-static-neutral-bluish-750) var(--dsh-glass-settings-raised), transparent);--dsw-specific-sidebar-nav-item-hover:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-soft), transparent)}[data-dsh-glass] body:not([data-ds-dark-theme]) [data-dsh-glass-settings]{--dsw-alias-bg-module-platform:color-mix(in srgb, var(--dsw-static-neutral-bluish-60) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-3:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-soft), transparent);--dsw-alias-bg-layer-2:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-1:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-soft), transparent);--dsw-specific-sidebar-nav-item-active:color-mix(in srgb, var(--dsw-static-neutral-bluish-100) var(--dsh-glass-settings-raised), transparent);--dsw-specific-sidebar-nav-item-hover:color-mix(in srgb, var(--dsw-static-neutral-bluish-75) var(--dsh-glass-settings-soft), transparent)}[data-dsh-glass-float] [data-phase] header:not([class*=headerBlank]){width:100%;max-width:min(calc(var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,1500px) * .64), 920px)) + 32px), calc(100% - 32px));border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);backdrop-filter:blur(var(--dsh-glass-blur,14px));border-radius:20px;margin:12px auto 0;padding:10px 16px 8px}[data-dsh-glass-float] [data-phase] header:not([class*=headerBlank]):after{display:none}[data-dsh-glass-float] [data-dsh-glass-frame][data-sidebar-collapsed] [data-phase] header:not([class*=headerBlank]){width:auto;max-width:none;margin-left:28px;margin-right:16px}[data-dsh-glass-float] [class*=sidebarCol]{--dsw-specific-sidebar-fill:transparent;z-index:9;border:1px solid var(--dsh-glass-rim-soft);box-shadow:var(--dsh-glass-drop);border-radius:20px;margin:12px;padding:10px 12px 14px;position:relative;overflow:hidden}[data-dsh-glass-float] [class*=sidebarCol]:before{content:\"\";border-radius:inherit;background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge);z-index:-1;pointer-events:none;transition:border-radius .15s var(--ds-ease-in-out);position:absolute;inset:0}[data-dsh-glass-float] body{--dsw-specific-sidebar-fill:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(52% * var(--dsh-glass-frost,1)), color-mix(in srgb, var(--dsh-glass-ground), var(--dsh-glass-wash-tint) calc(var(--dsh-glass-wash-mix) * var(--dsh-glass-ambience))))!important}[data-dsh-glass-float] [data-dsh-glass-frame][data-sidebar-collapsed] [class*=sidebarCol]{transition:margin .15s var(--ds-ease-in-out), border-radius .15s var(--ds-ease-in-out);border-radius:16px;margin:12px -12px 12px 12px;padding:0}[data-dsh-glass-float] [data-dsh-glass-frame]:not([data-sidebar-collapsed]) [data-dsh-glass-sidebar-root]{width:100%!important}[data-dsh-glass-float] [data-dsh-glass-trajectory]{width:calc(100% - 32px);max-width:min(calc(var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,1500px) * .64), 920px)) + 32px), calc(100% - 32px));border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);height:calc(100% - 20px);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);border-radius:20px;margin:8px auto 12px;overflow:hidden}[data-dsh-glass-float] [data-dsh-glass-trajectory] [role=toolbar],[data-dsh-glass-float] [data-dsh-glass-trajectory] section[aria-label=Trajectory\\ timeline]{background:0 0}[data-dsh-glass-float] [data-composer-card],[data-dsh-glass-float] [data-composer-card]:after{border-radius:24px}[data-dsh-glass-float] [data-composer-card]{z-index:8;isolation:isolate;border:1px solid var(--dsh-glass-rim-strong);box-shadow:var(--dsh-glass-input-shadow);background:0 0;position:relative}[data-dsh-glass-float] [data-composer-card]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass-float] [data-dsh-glass-inputbar]:not([class*=hero]):not(:has([data-dsh-glass-stats])){padding-bottom:12px}[data-dsh-glass-float] [role=treeitem][aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover)}[data-dsh-glass-float] button[class*=button]:hover:not(:disabled),[data-dsh-glass-float] [role=menuitem]:hover:not(:disabled){box-shadow:0 0 12px color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 20%, transparent)}[data-dsh-glass-float] [data-menu-material=translucent]:not(:focus-visible){--dsw-menu-surface-fill:var(--dsh-glass-card-raised);--dsw-menu-backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] body[data-ds-dark-theme] [data-menu-material=translucent]:not(:focus-visible){outline:1px solid var(--dsh-glass-rim-soft);outline-offset:-1px}[data-dsh-glass-float] [role=menu]:not([data-menu-material]):not([data-menu-material] *){background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim-soft);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-menu-material=translucent]:has([role=group]>[role=menuitemradio]){--dsw-menu-surface-fill:color-mix(in srgb, var(--dsw-alias-bg-layer-2) 70%, transparent)}[data-dsh-glass-float] [data-menu-group]:has(>[role=menuitemradio])>[data-menu-group-heading]{background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,14px));border-radius:999px;align-items:center;width:fit-content;margin:3px 0 5px 6px;padding:3px 10px;display:inline-flex}[data-dsh-glass-float] [role=dialog][aria-modal=true]{isolation:isolate;backdrop-filter:none;border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);background:0 0;border-radius:20px;position:relative}[data-dsh-glass-float] [role=dialog][aria-modal=true]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,14px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass] [data-conversation-scroll]{text-shadow:0 0 1px #ffffff80}[data-dsh-glass] body[data-ds-dark-theme] [data-conversation-scroll]{text-shadow:0 0 1px #0006}[data-dsh-glass-float] [data-dsh-glass-inputbar] [data-slot]{color:var(--dsw-alias-label-secondary)}[data-dsh-glass]{--dsh-glass-entry-scale:1}[data-dsh-glass-compat]{--dsh-glass-entry-scale:0}[data-dsh-glass] [data-testid^=view-]{animation:dsh-glass-in calc(.26s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out)}[data-dsh-glass] [data-tool]{animation:dsh-glass-rise calc(.3s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out) both}[data-dsh-glass] [role=dialog]{animation:dsh-glass-dialog-in calc(.24s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out)}@keyframes dsh-glass-in{0%{opacity:0}}@keyframes dsh-glass-rise{0%{opacity:0;transform:translateY(6px)}}@keyframes dsh-glass-dialog-in{0%{opacity:0}}[data-dsh-glass] :focus-visible{outline:2px solid color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 85%, transparent);outline-offset:1px}[data-dsh-glass] ::selection{background:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 35%, transparent)}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-compat] [class*=popover],[data-dsh-glass-compat] [class*=dropdown]{backdrop-filter:blur(12px)}[data-dsh-glass-compat] [data-menu-material=translucent]:not(:focus-visible){--dsw-menu-surface-fill:var(--dsh-glass-card-raised);--dsw-menu-backdrop-filter:blur(12px)}[data-dsh-glass-compat] [data-sidebar-right-panel][data-sidebar-right-open],[data-dsh-glass-compat] [data-sidebar-right-panel][data-sidebar-right-open] [class*=panel]{backdrop-filter:blur(12px)}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-compat] [class*=popover],[data-dsh-glass-compat] [class*=dropdown]{background:var(--dsh-glass-card-raised)}[data-dsh-glass-compat] [data-composer-card]{isolation:isolate;backdrop-filter:none;background:0 0;position:relative}[data-dsh-glass-compat] [data-composer-card]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *):not(:focus-visible),[data-dsh-glass-compat] [data-composer-card]:not(:focus-visible),[data-dsh-glass-compat] [class*=popover]:not(:focus-visible),[data-dsh-glass-compat] [class*=dropdown]:not(:focus-visible){outline:1px solid var(--dsh-glass-rim);outline-offset:-1px}[data-dsh-glass-compat] [role=dialog][aria-modal=true]{isolation:isolate;backdrop-filter:none;border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);background:0 0;position:relative}[data-dsh-glass-compat] [role=dialog][aria-modal=true]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,12px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass-settings] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-settings] .dsm-select-menu{background:color-mix(in srgb, var(--dsh-glass-ground) 92%, transparent);backdrop-filter:blur(12px);box-shadow:var(--dsh-glass-drop)}[data-dsh-glass-settings] .dsm-panel-head{isolation:isolate;outline:1px solid var(--dsh-glass-rim-soft);outline-offset:-1px;background:0 0;border-radius:14px;padding:6px 12px 4px}[data-dsh-glass-settings] .dsm-panel-head:before{content:\"\";z-index:-1;border-radius:inherit;background:color-mix(in srgb, var(--dsh-glass-ground) 78%, transparent);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){[data-dsh-glass] [data-testid^=view-],[data-dsh-glass] [data-tool],[data-dsh-glass] [role=dialog]{animation:none}}";
|
|
537
|
+
const GLASS_CSS_TEXT = "[data-dsh-glass] body{--dsh-glass-card:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(52% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-card-raised:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(64% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-card-hover:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(76% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-rim:color-mix(in srgb, var(--dsw-alias-label-primary) 18%, transparent);--dsh-glass-rim-soft:color-mix(in srgb, var(--dsw-alias-label-primary) 12%, transparent);--dsh-glass-rim-strong:color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);--dsh-glass-edge:inset 0 1px 0 #ffffff6b;--dsh-glass-drop:0 10px 32px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 38%, transparent);--dsh-glass-input-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 65%, transparent), 0 8px 24px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 80%, transparent);--dsh-glass-ground:color-mix(in srgb, color-mix(in srgb, var(--dsw-alias-bg-base), #fff calc(var(--dsh-glass-brightness-white,0) * 100%)), #000 calc(var(--dsh-glass-brightness-black,0) * 100%));--dsh-glass-ambience:calc(1 - var(--dsh-glass-brightness-white,0) - var(--dsh-glass-brightness-black,0));--dsh-glass-wash-tint:#fff;--dsh-glass-wash-mix:22%}[data-dsh-glass] body[data-ds-dark-theme]{--dsh-glass-rim:color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);--dsh-glass-rim-soft:color-mix(in srgb, var(--dsw-alias-label-primary) 16%, transparent);--dsh-glass-rim-strong:color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);--dsh-glass-edge:inset 0 1px 0 #ffffff14;--dsh-glass-drop:0 10px 32px #02060e73;--dsh-glass-input-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 65%, transparent), 0 8px 24px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 80%, transparent);--dsh-glass-wash-tint:var(--dsw-alias-bg-layer-1);--dsh-glass-wash-mix:68%}[data-dsh-glass] body,[data-dsh-glass] [data-dsh-glass-ground-sample]{background: radial-gradient(58% 46% at 18% 6%, color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) calc(12% * var(--dsh-glass-ambience) * var(--dsh-glass-glow,0) * var(--dsh-glass-glow-strength,1)), transparent), transparent 68%), radial-gradient(48% 42% at 86% 14%, color-mix(in srgb, var(--dsw-alias-state-success-tertiary) calc(10% * var(--dsh-glass-ambience) * var(--dsh-glass-glow,0) * var(--dsh-glass-glow-strength,1)), transparent), transparent 62%), linear-gradient(165deg, color-mix(in srgb, var(--dsh-glass-ground), var(--dsh-glass-wash-tint) calc(var(--dsh-glass-wash-mix) * var(--dsh-glass-ambience))) 0%, var(--dsh-glass-ground) 55%, color-mix(in srgb, var(--dsh-glass-ground), #000 calc(5% * var(--dsh-glass-ambience))) 100%)}[data-dsh-glass] [data-dsh-glass-frame],[data-dsh-glass] [data-phase],[data-dsh-glass] [data-dsh-glass-details],[data-dsh-glass-float] [data-dsh-glass-frame]>[class*=centerCol]{background:0 0}[data-dsh-glass-float] [data-phase=active] header{z-index:8;position:relative}[data-dsh-glass-float] [class*=banner]{position:static}[data-dsh-glass-float] [data-phase=active] [data-conversation-scroll]{margin-top:-95px;padding-top:107px}[data-dsh-glass] [data-phase] [class*=composerSeat][class*=composerSeat]{background:0 0}[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[class*=dock],[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[data-composer-dock]{position:relative}[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[class*=dock]:before,[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[data-composer-dock]:before{content:\"\";left:calc(-1 * var(--dsh-composer-side-clearance,16px));right:calc(-1 * var(--dsh-composer-side-clearance,16px));z-index:-1;pointer-events:none;background:color-mix(in srgb, color-mix(in srgb, var(--dsh-glass-ground), #000 calc(5% * var(--dsh-glass-ambience))) calc(70% + 10% * var(--dsh-glass-frost,1)), transparent);height:calc(100% + 12px);backdrop-filter:blur(var(--dsh-glass-blur,14px));position:absolute;bottom:-4px;-webkit-mask-image:linear-gradient(#0000 0,#000 18px);mask-image:linear-gradient(#0000 0,#000 18px)}[data-dsh-glass] [data-dsh-glass-fade]{z-index:7;pointer-events:none;backdrop-filter:blur(5px);background:#ffffff2e;height:13px;position:fixed;left:0;right:0}[data-dsh-glass] body[data-ds-dark-theme] [data-dsh-glass-fade]{background:#00000024}[data-dsh-glass] [data-dsh-glass-fade=top]{top:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 100%);mask-image:linear-gradient(#000 0%,#0000 100%)}[data-dsh-glass][data-windows-titlebar] [data-dsh-glass-fade=top]{display:none}[data-dsh-glass] [data-dsh-glass-fade=bottom]{bottom:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 100%);mask-image:linear-gradient(#0000 0%,#000 100%)}[data-dsh-glass-float] [data-menu-material=translucent],[data-dsh-glass-float] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-float] [role=dialog],[data-dsh-glass-float] [role=alert],[data-dsh-glass-float] [data-trigger-menu],[data-dsh-glass-float] [data-dsh-glass-surface]{border-radius:14px}[data-dsh-glass-float] [role=menuitem],[data-dsh-glass-float] [role=tooltip],[data-dsh-glass-float] [class*=pill]{border-radius:8px}[data-dsh-glass-float] button[class*=button]{border-radius:10px}[data-dsh-glass-float] [class*=iconButton],[data-dsh-glass-float] [class*=searchButton]{border-radius:8px}[data-dsh-glass-float] [class*=block]{--dsl-code-block-border-radius:14px;--dsl-diff-radius:14px;--dsl-read-radius:14px;--dsl-terminal-radius:14px;--dsl-web-radius:14px;--dsl-search-radius:14px;border-radius:14px}[data-dsh-glass-float] [data-dsh-glass-add]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-dsh-glass-add]:hover:not(:disabled){background:var(--dsh-glass-card-hover)}[data-dsh-glass-float] [data-dsh-glass-surface]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim-soft);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-dsh-glass-surface]:hover:not(:disabled){background:var(--dsh-glass-card-hover)}[data-dsh-glass-float] [data-conversation-scroll] [class*=bubble]{border:1px solid var(--dsh-glass-rim-soft);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(46% * var(--dsh-glass-frost,1)), transparent);border-radius:14px}[data-dsh-glass-float] [class*=card]{border-radius:14px}[data-dsh-glass-float] [data-reader-reasoning-card]:not([data-overflow=false][data-expanded=false]),[data-dsh-glass-compat] [data-reader-reasoning-card]:not([data-overflow=false][data-expanded=false]){background:color-mix(in srgb, var(--dsw-alias-bg-module-platform) calc(52% * var(--dsh-glass-frost,1)), transparent);border-color:var(--dsh-glass-rim-soft);border-radius:14px}html[data-dsh-glass-float] [data-changed-files],html[data-dsh-glass-float] [data-presented-file]{--changes-fill:var(--dsh-glass-card);--deliverable-fill:var(--dsh-glass-card);border-color:var(--dsh-glass-rim-soft);border-radius:14px}html[data-dsh-glass-float] [data-presented-file],html[data-dsh-glass-float] [data-changed-files]{background:var(--dsh-glass-card)}html[data-dsh-glass-float] [data-changed-files]>:first-child,html[data-dsh-glass-float] [data-changed-files] ul>li>:first-child,html[data-dsh-glass-float] [data-changed-files] ul{background:0 0}html[data-dsh-glass-float] [data-changed-files] ul{border-top:.5px solid var(--dsh-glass-rim-soft)}html[data-dsh-glass-float] [data-changed-files]>:first-child>:first-child,html[data-dsh-glass-float] [data-presented-file]>:first-child{background:var(--dsh-glass-card-raised)}html[data-dsh-glass-float] [data-turn-trigger]{background:var(--dsh-glass-card);border-color:var(--dsh-glass-rim-soft);border-radius:14px}html[data-dsh-glass-float] [data-turn-trigger]:hover{background:var(--dsh-glass-card-hover)}[data-dsh-glass] [data-dsh-glass-settings]{--dsh-glass-settings-raised:calc(38% + 38% * var(--dsh-glass-frost,1));--dsh-glass-settings-soft:calc(30% + 30% * var(--dsh-glass-frost,1));--dsw-alias-bg-module-platform:color-mix(in srgb, var(--dsw-static-neutral-bluish-800) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-3:color-mix(in srgb, var(--dsw-static-neutral-bluish-800) var(--dsh-glass-settings-soft), transparent);--dsw-alias-bg-layer-2:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-1:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-soft), transparent);--dsw-specific-sidebar-nav-item-active:color-mix(in srgb, var(--dsw-static-neutral-bluish-750) var(--dsh-glass-settings-raised), transparent);--dsw-specific-sidebar-nav-item-hover:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-soft), transparent)}[data-dsh-glass] body:not([data-ds-dark-theme]) [data-dsh-glass-settings]{--dsw-alias-bg-module-platform:color-mix(in srgb, var(--dsw-static-neutral-bluish-60) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-3:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-soft), transparent);--dsw-alias-bg-layer-2:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-1:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-soft), transparent);--dsw-specific-sidebar-nav-item-active:color-mix(in srgb, var(--dsw-static-neutral-bluish-100) var(--dsh-glass-settings-raised), transparent);--dsw-specific-sidebar-nav-item-hover:color-mix(in srgb, var(--dsw-static-neutral-bluish-75) var(--dsh-glass-settings-soft), transparent)}[data-dsh-glass-float] [data-phase] header:not([class*=headerBlank]){width:100%;margin:var(--dsh-glass-gap,12px) auto 0;max-width:min(calc(var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,1500px) * .64), 920px)) + 32px), calc(100% - 32px));border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);backdrop-filter:blur(var(--dsh-glass-blur,14px));border-radius:20px;padding:10px 16px 8px}[data-dsh-glass-float] [data-phase] header:not([class*=headerBlank]):after{display:none}[data-dsh-glass-float] [data-dsh-glass-frame][data-sidebar-collapsed] [data-phase] header:not([class*=headerBlank]){width:auto;margin-left:calc(var(--dsh-glass-gap,12px) + 16px);max-width:none;margin-right:16px}[data-dsh-glass-float] [class*=sidebarCol]{--dsw-specific-sidebar-fill:transparent;z-index:9;margin:var(--dsh-glass-gap,12px);border:1px solid var(--dsh-glass-rim-soft);box-shadow:var(--dsh-glass-drop);border-radius:20px;padding:10px 12px 14px;position:relative;overflow:hidden}[data-dsh-glass-float] [class*=sidebarCol]:before{content:\"\";border-radius:inherit;background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge);z-index:-1;pointer-events:none;transition:border-radius .15s var(--ds-ease-in-out);position:absolute;inset:0}[data-dsh-glass-float] body{--dsw-specific-sidebar-fill:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(52% * var(--dsh-glass-frost,1)), color-mix(in srgb, var(--dsh-glass-ground), var(--dsh-glass-wash-tint) calc(var(--dsh-glass-wash-mix) * var(--dsh-glass-ambience))))!important}[data-dsh-glass-float] [data-dsh-glass-frame][data-sidebar-collapsed] [class*=sidebarCol]{margin:var(--dsh-glass-gap,12px) calc(-1 * min(var(--dsh-glass-gap,12px), 16px)) var(--dsh-glass-gap,12px) var(--dsh-glass-gap,12px);transition:margin .15s var(--ds-ease-in-out), border-radius .15s var(--ds-ease-in-out);border-radius:16px;padding:0}[data-dsh-glass-float] [data-dsh-glass-frame]:not([data-sidebar-collapsed]) [data-dsh-glass-sidebar-root]{width:100%!important}[data-dsh-glass-float] [data-dsh-glass-trajectory]{margin:8px auto var(--dsh-glass-gap,12px);width:calc(100% - 32px);max-width:min(calc(var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,1500px) * .64), 920px)) + 32px), calc(100% - 32px));height:calc(100% - 8px - var(--dsh-glass-gap,12px));border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);border-radius:20px;overflow:hidden}[data-dsh-glass-float] [data-dsh-glass-trajectory] [role=toolbar],[data-dsh-glass-float] [data-dsh-glass-trajectory] section[aria-label=Trajectory\\ timeline]{background:0 0}[data-dsh-glass-float] [data-composer-card],[data-dsh-glass-float] [data-composer-card]:after{border-radius:24px}[data-dsh-glass-float] [data-composer-card]{z-index:8;isolation:isolate;border:1px solid var(--dsh-glass-rim-strong);box-shadow:var(--dsh-glass-input-shadow);background:0 0;position:relative}[data-dsh-glass-float] [data-composer-card]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass-float] [data-dsh-glass-inputbar]:not([class*=hero]):not(:has([data-dsh-glass-stats])){padding-bottom:var(--dsh-glass-gap,12px)}[data-dsh-glass-float] [role=treeitem][aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover)}[data-dsh-glass-float] button[class*=button]:hover:not(:disabled),[data-dsh-glass-float] [role=menuitem]:hover:not(:disabled){box-shadow:0 0 12px color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 20%, transparent)}[data-dsh-glass-float] [data-menu-material=translucent]:not(:focus-visible){--dsw-menu-surface-fill:var(--dsh-glass-card-raised);--dsw-menu-backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] body[data-ds-dark-theme] [data-menu-material=translucent]:not(:focus-visible){outline:1px solid var(--dsh-glass-rim-soft);outline-offset:-1px}[data-dsh-glass-float] [role=menu]:not([data-menu-material]):not([data-menu-material] *){background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim-soft);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-menu-material=translucent]:has([role=group]>[role=menuitemradio]){--dsw-menu-surface-fill:color-mix(in srgb, var(--dsw-alias-bg-layer-2) 70%, transparent)}[data-dsh-glass-float] [data-menu-group]:has(>[role=menuitemradio])>[data-menu-group-heading]{background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,14px));border-radius:999px;align-items:center;width:fit-content;margin:3px 0 5px 6px;padding:3px 10px;display:inline-flex}[data-dsh-glass-float] [role=dialog][aria-modal=true]{isolation:isolate;backdrop-filter:none;border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);background:0 0;border-radius:20px;position:relative}[data-dsh-glass-float] [role=dialog][aria-modal=true]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,14px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass] [data-conversation-scroll]{text-shadow:0 0 1px #ffffff80}[data-dsh-glass] body[data-ds-dark-theme] [data-conversation-scroll]{text-shadow:0 0 1px #0006}[data-dsh-glass-float] [data-dsh-glass-inputbar] [data-slot]{color:var(--dsw-alias-label-secondary)}[data-dsh-glass]{--dsh-glass-entry-scale:1}[data-dsh-glass-compat]{--dsh-glass-entry-scale:0}[data-dsh-glass] [data-testid^=view-]{animation:dsh-glass-in calc(.26s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out)}[data-dsh-glass] [data-tool]{animation:dsh-glass-rise calc(.3s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out) both}[data-dsh-glass] [role=dialog]{animation:dsh-glass-dialog-in calc(.24s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out)}@keyframes dsh-glass-in{0%{opacity:0}}@keyframes dsh-glass-rise{0%{opacity:0;transform:translateY(6px)}}@keyframes dsh-glass-dialog-in{0%{opacity:0}}[data-dsh-glass] :focus-visible{outline:2px solid color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 85%, transparent);outline-offset:1px}[data-dsh-glass] ::selection{background:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 35%, transparent)}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-compat] [class*=popover],[data-dsh-glass-compat] [class*=dropdown]{backdrop-filter:blur(12px)}[data-dsh-glass-compat] [data-menu-material=translucent]:not(:focus-visible){--dsw-menu-surface-fill:var(--dsh-glass-card-raised);--dsw-menu-backdrop-filter:blur(12px)}[data-dsh-glass-compat] [data-sidebar-right-panel][data-sidebar-right-open],[data-dsh-glass-compat] [data-sidebar-right-panel][data-sidebar-right-open] [class*=panel]{backdrop-filter:blur(12px)}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-compat] [class*=popover],[data-dsh-glass-compat] [class*=dropdown]{background:var(--dsh-glass-card-raised)}[data-dsh-glass-compat] [data-composer-card]{isolation:isolate;backdrop-filter:none;background:0 0;position:relative}[data-dsh-glass-compat] [data-composer-card]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *):not(:focus-visible),[data-dsh-glass-compat] [data-composer-card]:not(:focus-visible),[data-dsh-glass-compat] [class*=popover]:not(:focus-visible),[data-dsh-glass-compat] [class*=dropdown]:not(:focus-visible){outline:1px solid var(--dsh-glass-rim);outline-offset:-1px}[data-dsh-glass-compat] [role=dialog][aria-modal=true]{isolation:isolate;backdrop-filter:none;border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);background:0 0;position:relative}[data-dsh-glass-compat] [role=dialog][aria-modal=true]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,12px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass-settings] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-settings] .dsm-select-menu{background:color-mix(in srgb, var(--dsh-glass-ground) 92%, transparent);backdrop-filter:blur(12px);box-shadow:var(--dsh-glass-drop)}[data-dsh-glass-settings] .dsm-panel-head{isolation:isolate;outline:1px solid var(--dsh-glass-rim-soft);outline-offset:-1px;background:0 0;border-radius:14px;padding:6px 12px 4px}[data-dsh-glass-settings] .dsm-panel-head:before{content:\"\";z-index:-1;border-radius:inherit;background:color-mix(in srgb, var(--dsh-glass-ground) 78%, transparent);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){[data-dsh-glass] [data-testid^=view-],[data-dsh-glass] [data-tool],[data-dsh-glass] [role=dialog]{animation:none}}";
|
|
538
538
|
/** Legacy settings namespace (DSH <= 0.1.6-alpha.2): the Host registers it
|
|
539
539
|
* through `settings.installSection`, the Client binds it through
|
|
540
540
|
* `ctx.settingsScope` (see `src/settings-catppuccin.ts`). */
|
|
@@ -585,6 +585,8 @@ window.__ModuleLoader__.load({
|
|
|
585
585
|
blur: 5,
|
|
586
586
|
frost: 20,
|
|
587
587
|
brightness: 50,
|
|
588
|
+
gap: 12,
|
|
589
|
+
glowStrength: 100,
|
|
588
590
|
glow: false
|
|
589
591
|
};
|
|
590
592
|
/** Shipped update-check channel: chase the stable `latest` tag. */
|
|
@@ -653,6 +655,8 @@ window.__ModuleLoader__.load({
|
|
|
653
655
|
state.glass.blur = clampFinite(glass.blur, 0, 40, DEFAULT_GLASS.blur);
|
|
654
656
|
state.glass.frost = clampFinite(glass.frost, 0, 100, DEFAULT_GLASS.frost);
|
|
655
657
|
state.glass.brightness = clampFinite(glass.brightness, 0, 100, DEFAULT_GLASS.brightness);
|
|
658
|
+
state.glass.gap = clampFinite(glass.gap, 4, 24, DEFAULT_GLASS.gap);
|
|
659
|
+
state.glass.glowStrength = clampFinite(glass.glowStrength, 0, 200, DEFAULT_GLASS.glowStrength);
|
|
656
660
|
state.glass.glow = glass.glow === true;
|
|
657
661
|
state.autoCheck = raw.autoCheck !== false;
|
|
658
662
|
state.updateChannel = raw.updateChannel === "beta" ? "beta" : "latest";
|
|
@@ -665,7 +669,7 @@ window.__ModuleLoader__.load({
|
|
|
665
669
|
* "no durable state yet" apart from "an explicit default choice". */
|
|
666
670
|
function isDefaultState(state) {
|
|
667
671
|
const expected = defaultState();
|
|
668
|
-
return state.flavor === expected.flavor && state.glass.enabled === expected.glass.enabled && state.glass.mode === expected.glass.mode && state.glass.blur === expected.glass.blur && state.glass.frost === expected.glass.frost && state.glass.brightness === expected.glass.brightness && state.glass.glow === expected.glass.glow && state.autoCheck === expected.autoCheck && state.updateChannel === expected.updateChannel && Object.keys(state.overrides).length === 0 && state.shikiStyle === expected.shikiStyle;
|
|
672
|
+
return state.flavor === expected.flavor && state.glass.enabled === expected.glass.enabled && state.glass.mode === expected.glass.mode && state.glass.blur === expected.glass.blur && state.glass.frost === expected.glass.frost && state.glass.brightness === expected.glass.brightness && state.glass.gap === expected.glass.gap && state.glass.glowStrength === expected.glass.glowStrength && state.glass.glow === expected.glass.glow && state.autoCheck === expected.autoCheck && state.updateChannel === expected.updateChannel && Object.keys(state.overrides).length === 0 && state.shikiStyle === expected.shikiStyle;
|
|
669
673
|
}
|
|
670
674
|
/** Drop the synthetic `version` field: full state → settings-document section. */
|
|
671
675
|
function settingsSectionFromState(state) {
|
|
@@ -693,7 +697,7 @@ window.__ModuleLoader__.load({
|
|
|
693
697
|
/** Whether two settings sections are field-for-field equal (used to skip
|
|
694
698
|
* redundant mirror writes and to recognize the Host echoing our own write). */
|
|
695
699
|
function settingsSectionsEqual(a, b) {
|
|
696
|
-
return a.flavor === b.flavor && a.glass.enabled === b.glass.enabled && a.glass.mode === b.glass.mode && a.glass.blur === b.glass.blur && a.glass.frost === b.glass.frost && a.glass.brightness === b.glass.brightness && a.glass.glow === b.glass.glow && a.autoCheck === b.autoCheck && a.updateChannel === b.updateChannel && a.shikiStyle === b.shikiStyle && sameOverrides(a.overrides, b.overrides);
|
|
700
|
+
return a.flavor === b.flavor && a.glass.enabled === b.glass.enabled && a.glass.mode === b.glass.mode && a.glass.blur === b.glass.blur && a.glass.frost === b.glass.frost && a.glass.brightness === b.glass.brightness && a.glass.gap === b.glass.gap && a.glass.glowStrength === b.glass.glowStrength && a.glass.glow === b.glass.glow && a.autoCheck === b.autoCheck && a.updateChannel === b.updateChannel && a.shikiStyle === b.shikiStyle && sameOverrides(a.overrides, b.overrides);
|
|
697
701
|
}
|
|
698
702
|
/**
|
|
699
703
|
* Replay the local changes a window made BEFORE the durable channel became
|
|
@@ -753,6 +757,8 @@ window.__ModuleLoader__.load({
|
|
|
753
757
|
carryGlass("blur");
|
|
754
758
|
carryGlass("frost");
|
|
755
759
|
carryGlass("brightness");
|
|
760
|
+
carryGlass("gap");
|
|
761
|
+
carryGlass("glowStrength");
|
|
756
762
|
carryGlass("glow");
|
|
757
763
|
carry("autoCheck");
|
|
758
764
|
carry("updateChannel");
|
|
@@ -785,7 +791,9 @@ window.__ModuleLoader__.load({
|
|
|
785
791
|
"--dsh-glass-frost",
|
|
786
792
|
"--dsh-glass-brightness-black",
|
|
787
793
|
"--dsh-glass-brightness-white",
|
|
788
|
-
"--dsh-glass-glow"
|
|
794
|
+
"--dsh-glass-glow",
|
|
795
|
+
"--dsh-glass-gap",
|
|
796
|
+
"--dsh-glass-glow-strength"
|
|
789
797
|
];
|
|
790
798
|
/** localStorage key carrying the layer enable flag. */
|
|
791
799
|
const GLASS_ENABLED_KEY = "dsh.catppuccin.glass.enabled";
|
|
@@ -812,13 +820,28 @@ window.__ModuleLoader__.load({
|
|
|
812
820
|
blur: DEFAULT_GLASS.blur,
|
|
813
821
|
frost: DEFAULT_GLASS.frost,
|
|
814
822
|
brightness: DEFAULT_GLASS.brightness,
|
|
823
|
+
gap: DEFAULT_GLASS.gap,
|
|
824
|
+
glowStrength: DEFAULT_GLASS.glowStrength,
|
|
815
825
|
glow: DEFAULT_GLASS.glow
|
|
816
826
|
};
|
|
817
827
|
/** Numeric knob keys and their localStorage names. */
|
|
818
828
|
const NUMERIC_KEYS = {
|
|
819
829
|
blur: "dsh.catppuccin.glass.blur",
|
|
820
830
|
frost: "dsh.catppuccin.glass.frost",
|
|
821
|
-
brightness: "dsh.catppuccin.glass.brightness"
|
|
831
|
+
brightness: "dsh.catppuccin.glass.brightness",
|
|
832
|
+
gap: "dsh.catppuccin.glass.gap",
|
|
833
|
+
glowStrength: "dsh.catppuccin.glass.glow-strength"
|
|
834
|
+
};
|
|
835
|
+
/** Per-knob [min, max]. One table instead of the old `key === 'blur' ? 40 : 100`
|
|
836
|
+
* test: the gap knob is the first one that is NOT zero-based (4-24, issue
|
|
837
|
+
* #31), and a shared "0 to max" clamp would have silently turned its floor
|
|
838
|
+
* into 0 and its ceiling into 100. */
|
|
839
|
+
const NUMERIC_BOUNDS = {
|
|
840
|
+
blur: [0, 40],
|
|
841
|
+
frost: [0, 100],
|
|
842
|
+
brightness: [0, 100],
|
|
843
|
+
gap: [4, 24],
|
|
844
|
+
glowStrength: [0, 200]
|
|
822
845
|
};
|
|
823
846
|
/** The localStorage names of the numeric knobs — the reverse of
|
|
824
847
|
* `NUMERIC_KEYS`. Used by the cross-tab `storage` handler: the event's `key`
|
|
@@ -830,10 +853,13 @@ window.__ModuleLoader__.load({
|
|
|
830
853
|
const MODE_KEY = "dsh.catppuccin.glass.mode";
|
|
831
854
|
/** localStorage key of the ground-glow switch (issue #26). */
|
|
832
855
|
const GLOW_KEY = "dsh.catppuccin.glass.glow";
|
|
833
|
-
/** Clamp a numeric knob into its
|
|
856
|
+
/** Clamp a numeric knob into its `NUMERIC_BOUNDS` range. Two knobs are NOT
|
|
857
|
+
* 0-100 and would silently snap back if folded into that arm: `gap` (issue
|
|
858
|
+
* #31, 4-24px) and `glowStrength` (issue #32, 0-`GLOW_STRENGTH_MAX`% — a
|
|
859
|
+
* contrast budget, not a taste number). */
|
|
834
860
|
function clampSetting(key, value) {
|
|
835
|
-
const max = key
|
|
836
|
-
return Number.isFinite(value) ? Math.min(max, Math.max(
|
|
861
|
+
const [min, max] = NUMERIC_BOUNDS[key];
|
|
862
|
+
return Number.isFinite(value) ? Math.min(max, Math.max(min, value)) : SETTINGS_DEFAULTS[key];
|
|
837
863
|
}
|
|
838
864
|
/** Read one numeric knob from localStorage (absent/parse failure means the default). */
|
|
839
865
|
function readSetting(key) {
|
|
@@ -982,6 +1008,8 @@ window.__ModuleLoader__.load({
|
|
|
982
1008
|
blur: this.settings.blur,
|
|
983
1009
|
frost: this.settings.frost,
|
|
984
1010
|
brightness: this.settings.brightness,
|
|
1011
|
+
gap: this.settings.gap,
|
|
1012
|
+
glowStrength: this.settings.glowStrength,
|
|
985
1013
|
glow: this.settings.glow
|
|
986
1014
|
};
|
|
987
1015
|
}
|
|
@@ -995,6 +1023,8 @@ window.__ModuleLoader__.load({
|
|
|
995
1023
|
blur: clampSetting("blur", remote.blur),
|
|
996
1024
|
frost: clampSetting("frost", remote.frost),
|
|
997
1025
|
brightness: clampSetting("brightness", remote.brightness),
|
|
1026
|
+
gap: clampSetting("gap", remote.gap),
|
|
1027
|
+
glowStrength: clampSetting("glowStrength", remote.glowStrength),
|
|
998
1028
|
glow: remote.glow === true
|
|
999
1029
|
};
|
|
1000
1030
|
writeEnabled(this.enabled);
|
|
@@ -1002,6 +1032,8 @@ window.__ModuleLoader__.load({
|
|
|
1002
1032
|
writeSetting("blur", this.settings.blur);
|
|
1003
1033
|
writeSetting("frost", this.settings.frost);
|
|
1004
1034
|
writeSetting("brightness", this.settings.brightness);
|
|
1035
|
+
writeSetting("gap", this.settings.gap);
|
|
1036
|
+
writeSetting("glowStrength", this.settings.glowStrength);
|
|
1005
1037
|
writeGlow(this.settings.glow);
|
|
1006
1038
|
this.sync();
|
|
1007
1039
|
}
|
|
@@ -1047,6 +1079,22 @@ window.__ModuleLoader__.load({
|
|
|
1047
1079
|
if (this.enabled) this.applySettings();
|
|
1048
1080
|
this.publish();
|
|
1049
1081
|
}
|
|
1082
|
+
/**
|
|
1083
|
+
* Set the floating-card inset (px, 4-24) — issue #31.
|
|
1084
|
+
*
|
|
1085
|
+
* Layout-only: it writes `--dsh-glass-gap`, which the mica rules read for the
|
|
1086
|
+
* sidebar sheet's margin, the header/trajectory margins and the composer
|
|
1087
|
+
* bar's bottom pad. No repaint of any material, so a drag is cheap; the
|
|
1088
|
+
* presets call it with a constant.
|
|
1089
|
+
*/
|
|
1090
|
+
setGap(value) {
|
|
1091
|
+
const next = clampSetting("gap", value);
|
|
1092
|
+
if (next === this.settings.gap) return;
|
|
1093
|
+
this.settings.gap = next;
|
|
1094
|
+
writeSetting("gap", next);
|
|
1095
|
+
if (this.enabled) this.applySettings();
|
|
1096
|
+
this.publish();
|
|
1097
|
+
}
|
|
1050
1098
|
/** Toggle the two static ground glows (issue #26; wash-only is the default). */
|
|
1051
1099
|
setGlow(value) {
|
|
1052
1100
|
if (value === this.settings.glow) return;
|
|
@@ -1055,6 +1103,17 @@ window.__ModuleLoader__.load({
|
|
|
1055
1103
|
if (this.enabled) this.applySettings();
|
|
1056
1104
|
this.publish();
|
|
1057
1105
|
}
|
|
1106
|
+
/** Set the ground-glow strength, percent of the shipped look (issue #32).
|
|
1107
|
+
* Only scales the two radial layers — the wash is deliberately untouchable
|
|
1108
|
+
* (it is the issue #26 default) and the switch stays the on/off. */
|
|
1109
|
+
setGlowStrength(value) {
|
|
1110
|
+
const next = clampSetting("glowStrength", value);
|
|
1111
|
+
if (next === this.settings.glowStrength) return;
|
|
1112
|
+
this.settings.glowStrength = next;
|
|
1113
|
+
writeSetting("glowStrength", next);
|
|
1114
|
+
if (this.enabled) this.applySettings();
|
|
1115
|
+
this.publish();
|
|
1116
|
+
}
|
|
1058
1117
|
/** Restore every knob to the shipped defaults (persisted immediately). */
|
|
1059
1118
|
resetDefaults() {
|
|
1060
1119
|
this.settings = { ...SETTINGS_DEFAULTS };
|
|
@@ -1062,6 +1121,8 @@ window.__ModuleLoader__.load({
|
|
|
1062
1121
|
writeSetting("blur", this.settings.blur);
|
|
1063
1122
|
writeSetting("frost", this.settings.frost);
|
|
1064
1123
|
writeSetting("brightness", this.settings.brightness);
|
|
1124
|
+
writeSetting("gap", this.settings.gap);
|
|
1125
|
+
writeSetting("glowStrength", this.settings.glowStrength);
|
|
1065
1126
|
writeGlow(this.settings.glow);
|
|
1066
1127
|
if (this.enabled) this.applySettings();
|
|
1067
1128
|
this.publish();
|
|
@@ -1073,6 +1134,8 @@ window.__ModuleLoader__.load({
|
|
|
1073
1134
|
blur: readSetting("blur"),
|
|
1074
1135
|
frost: readSetting("frost"),
|
|
1075
1136
|
brightness: readSetting("brightness"),
|
|
1137
|
+
gap: readSetting("gap"),
|
|
1138
|
+
glowStrength: readSetting("glowStrength"),
|
|
1076
1139
|
glow: readGlow()
|
|
1077
1140
|
};
|
|
1078
1141
|
}
|
|
@@ -1101,7 +1164,9 @@ window.__ModuleLoader__.load({
|
|
|
1101
1164
|
"--dsh-glass-frost": String(Math.min(this.settings.frost / 50, 1.4)),
|
|
1102
1165
|
"--dsh-glass-brightness-black": String(dark ? Math.max(0, (50 - this.settings.brightness) / 50) : 0),
|
|
1103
1166
|
"--dsh-glass-brightness-white": String(dark ? 0 : Math.max(0, (this.settings.brightness - 50) / 50)),
|
|
1104
|
-
"--dsh-glass-glow": this.settings.glow ? "1" : "0"
|
|
1167
|
+
"--dsh-glass-glow": this.settings.glow ? "1" : "0",
|
|
1168
|
+
"--dsh-glass-gap": `${this.settings.gap}px`,
|
|
1169
|
+
"--dsh-glass-glow-strength": String(this.settings.glowStrength / 100)
|
|
1105
1170
|
};
|
|
1106
1171
|
for (const [property, value] of Object.entries(knobs)) style.setProperty(property, value);
|
|
1107
1172
|
const compat = this.settings.mode === "compat";
|
|
@@ -1316,17 +1381,42 @@ window.__ModuleLoader__.load({
|
|
|
1316
1381
|
}
|
|
1317
1382
|
];
|
|
1318
1383
|
/**
|
|
1384
|
+
* Floating-card inset presets (issue #31) — a SEPARATE axis from the material
|
|
1385
|
+
* presets above, and deliberately not folded into them: `activePreset` matches
|
|
1386
|
+
* on the blur/frost/brightness triple, so a gap-only change would otherwise
|
|
1387
|
+
* flip the material row to "custom" for no reason. The three tiers sit inside
|
|
1388
|
+
* the knob's 4-24 range; the slider stays for anything in between.
|
|
1389
|
+
*/
|
|
1390
|
+
const GAP_PRESETS = [
|
|
1391
|
+
{
|
|
1392
|
+
id: "compact",
|
|
1393
|
+
key: "glass.gapCompact",
|
|
1394
|
+
gap: 8
|
|
1395
|
+
},
|
|
1396
|
+
{
|
|
1397
|
+
id: "standard",
|
|
1398
|
+
key: "glass.gapStandard",
|
|
1399
|
+
gap: SETTINGS_DEFAULTS.gap
|
|
1400
|
+
},
|
|
1401
|
+
{
|
|
1402
|
+
id: "loose",
|
|
1403
|
+
key: "glass.gapLoose",
|
|
1404
|
+
gap: 20
|
|
1405
|
+
}
|
|
1406
|
+
];
|
|
1407
|
+
/**
|
|
1319
1408
|
* Render the glass row: title, the master switch, and — while enabled — the
|
|
1320
1409
|
* mode picker and every knob.
|
|
1321
1410
|
* @param props - composed slot props.
|
|
1322
1411
|
* @returns the settings row.
|
|
1323
1412
|
*/
|
|
1324
|
-
function GlassRow({ t, getState, subscribe, setEnabled, setMode, setBlur, setFrost, setBrightness, setGlow, resetDefaults, onPreviewMain }) {
|
|
1325
|
-
const { enabled, mode, blur, frost, brightness, glow, dark } = (0, react.useSyncExternalStore)(subscribe, getState);
|
|
1413
|
+
function GlassRow({ t, getState, subscribe, setEnabled, setMode, setBlur, setFrost, setBrightness, setGap, setGlow, setGlowStrength, resetDefaults, onPreviewMain }) {
|
|
1414
|
+
const { enabled, mode, blur, frost, brightness, gap, glow, glowStrength, dark } = (0, react.useSyncExternalStore)(subscribe, getState);
|
|
1326
1415
|
const bgMin = dark ? 0 : 50;
|
|
1327
1416
|
const bgMax = dark ? 50 : 100;
|
|
1328
1417
|
const bgDisplay = Math.min(bgMax, Math.max(bgMin, brightness));
|
|
1329
1418
|
const activePreset = GLASS_PRESETS.find((p) => p.blur === blur && p.frost === frost && p.brightness === brightness)?.id ?? "";
|
|
1419
|
+
const activeGapPreset = GAP_PRESETS.find((p) => p.gap === gap)?.id ?? "";
|
|
1330
1420
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1331
1421
|
className: settings_row_module_css_default.row,
|
|
1332
1422
|
"data-catppuccin-row": "glass",
|
|
@@ -1444,6 +1534,41 @@ window.__ModuleLoader__.load({
|
|
|
1444
1534
|
className: GlassRow_module_css_default.rowHint,
|
|
1445
1535
|
children: t(dark ? "glass.brightnessHintDark" : "glass.brightnessHintLight")
|
|
1446
1536
|
}),
|
|
1537
|
+
mode === "mica" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
1538
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1539
|
+
className: GlassRow_module_css_default.row,
|
|
1540
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1541
|
+
className: GlassRow_module_css_default.rowLabel,
|
|
1542
|
+
children: t("glass.gap")
|
|
1543
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1544
|
+
className: GlassRow_module_css_default.presetGroup,
|
|
1545
|
+
role: "group",
|
|
1546
|
+
"aria-label": t("glass.gap"),
|
|
1547
|
+
children: GAP_PRESETS.map((preset) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1548
|
+
size: "sm",
|
|
1549
|
+
variant: activeGapPreset === preset.id ? "primary" : "outline",
|
|
1550
|
+
"aria-pressed": activeGapPreset === preset.id,
|
|
1551
|
+
onClick: () => {
|
|
1552
|
+
setGap(preset.gap);
|
|
1553
|
+
},
|
|
1554
|
+
children: t(preset.key)
|
|
1555
|
+
}, preset.id))
|
|
1556
|
+
})]
|
|
1557
|
+
}),
|
|
1558
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Knob, {
|
|
1559
|
+
label: t("glass.gap"),
|
|
1560
|
+
value: gap,
|
|
1561
|
+
min: 4,
|
|
1562
|
+
max: 24,
|
|
1563
|
+
step: 1,
|
|
1564
|
+
unit: "px",
|
|
1565
|
+
onChange: setGap
|
|
1566
|
+
}),
|
|
1567
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1568
|
+
className: GlassRow_module_css_default.rowHint,
|
|
1569
|
+
children: t("glass.gapHint")
|
|
1570
|
+
})
|
|
1571
|
+
] }),
|
|
1447
1572
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1448
1573
|
className: GlassRow_module_css_default.row,
|
|
1449
1574
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -1461,6 +1586,15 @@ window.__ModuleLoader__.load({
|
|
|
1461
1586
|
className: GlassRow_module_css_default.rowHint,
|
|
1462
1587
|
children: t("glass.glowHint")
|
|
1463
1588
|
}),
|
|
1589
|
+
glow && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Knob, {
|
|
1590
|
+
label: t("glass.glowStrength"),
|
|
1591
|
+
value: glowStrength,
|
|
1592
|
+
min: 0,
|
|
1593
|
+
max: 200,
|
|
1594
|
+
step: 5,
|
|
1595
|
+
unit: "%",
|
|
1596
|
+
onChange: setGlowStrength
|
|
1597
|
+
}),
|
|
1464
1598
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1465
1599
|
className: GlassRow_module_css_default.sampleRow,
|
|
1466
1600
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -2081,8 +2215,14 @@ window.__ModuleLoader__.load({
|
|
|
2081
2215
|
"glass.brightness": "背景亮度",
|
|
2082
2216
|
"glass.brightnessHintDark": "深色模式:0 压暗至纯黑,50 原样",
|
|
2083
2217
|
"glass.brightnessHintLight": "浅色模式:50 原样,100 提亮至纯白",
|
|
2218
|
+
"glass.gap": "卡片间距",
|
|
2219
|
+
"glass.gapHint": "云母模式下悬浮卡片与窗口边缘的留白。调大后侧栏卡片自身会变窄,正文列宽不变;兼容模式不受影响。",
|
|
2220
|
+
"glass.gapCompact": "紧凑",
|
|
2221
|
+
"glass.gapStandard": "标准",
|
|
2222
|
+
"glass.gapLoose": "宽松",
|
|
2084
2223
|
"glass.glow": "地面光斑",
|
|
2085
|
-
"glass.glowHint": "在渐变地面上叠加两枚柔光斑(0.6.3
|
|
2224
|
+
"glass.glowHint": "在渐变地面上叠加两枚柔光斑(0.6.3 的观感)。光斑固定在屏幕上,各块玻璃面板会透出它的不同部位,所以默认关闭;打开后左上角会明显偏亮,强度可调,100% 即上述观感。背景亮度拉满时氛围归零,光斑会一并淡出",
|
|
2225
|
+
"glass.glowStrength": "地面光斑强度",
|
|
2086
2226
|
"glass.previewGround": "地面样本",
|
|
2087
2227
|
"glass.previewGroundHint": "这一段就是页面地面的真实取色:拖动「背景亮度」或切换「地面光斑」,它当场变化。",
|
|
2088
2228
|
"glass.reset": "还原默认值",
|
|
@@ -2169,8 +2309,14 @@ window.__ModuleLoader__.load({
|
|
|
2169
2309
|
"glass.brightness": "Backdrop brightness",
|
|
2170
2310
|
"glass.brightnessHintDark": "Dark mode: 0 fades to pure black, 50 unchanged",
|
|
2171
2311
|
"glass.brightnessHintLight": "Light mode: 50 unchanged, 100 brightens to pure white",
|
|
2312
|
+
"glass.gap": "Card spacing",
|
|
2313
|
+
"glass.gapHint": "Whitespace between the floating cards and the window edge (Mica only). A larger gap narrows the sidebar sheet itself; the reading column does not move. Compatibility mode is unaffected.",
|
|
2314
|
+
"glass.gapCompact": "Compact",
|
|
2315
|
+
"glass.gapStandard": "Standard",
|
|
2316
|
+
"glass.gapLoose": "Loose",
|
|
2172
2317
|
"glass.glow": "Ground glows",
|
|
2173
|
-
"glass.glowHint": "Adds the two soft radial glows back on top of the gradient ground (the 0.6.3 look). They are pinned to the screen while the glass panes sit elsewhere, so each pane transmits a different slice of them — off by default; turning it on visibly brightens the top-left corner",
|
|
2318
|
+
"glass.glowHint": "Adds the two soft radial glows back on top of the gradient ground (the 0.6.3 look). They are pinned to the screen while the glass panes sit elsewhere, so each pane transmits a different slice of them — off by default; turning it on visibly brightens the top-left corner, and the strength knob below scales it (100% is that look). At maximum backdrop brightness the ambience collapses and the glows fade out with it",
|
|
2319
|
+
"glass.glowStrength": "Ground glow strength",
|
|
2174
2320
|
"glass.previewGround": "Ground sample",
|
|
2175
2321
|
"glass.previewGroundHint": "This strip is the page ground itself: drag the brightness knob or toggle the glows and it changes on the spot.",
|
|
2176
2322
|
"glass.reset": "Reset to defaults",
|
|
@@ -2257,8 +2403,14 @@ window.__ModuleLoader__.load({
|
|
|
2257
2403
|
"glass.brightness": "背景の輝度",
|
|
2258
2404
|
"glass.brightnessHintDark": "ダーク: 0 で純黒、50 でそのまま",
|
|
2259
2405
|
"glass.brightnessHintLight": "ライト: 50 でそのまま、100 で純白",
|
|
2406
|
+
"glass.gap": "カード間隔",
|
|
2407
|
+
"glass.gapHint": "Mica モードで浮遊カードとウィンドウ端のあいだに取る余白。広げるとサイドバーのカード自体が細くなり、本文の列幅は変わりません。互換モードには影響しません。",
|
|
2408
|
+
"glass.gapCompact": "コンパクト",
|
|
2409
|
+
"glass.gapStandard": "標準",
|
|
2410
|
+
"glass.gapLoose": "ゆったり",
|
|
2260
2411
|
"glass.glow": "地面の光だまり",
|
|
2261
|
-
"glass.glowHint": "グラデーションの地面に 2 つの柔らかな光だまりを重ねます(0.6.3
|
|
2412
|
+
"glass.glowHint": "グラデーションの地面に 2 つの柔らかな光だまりを重ねます(0.6.3 の見た目)。光だまりは画面に固定され、各ガラス面はその別々の部分を透かすため、既定ではオフ。オンにすると左上が明るくなります。下の強さで拡大でき、100% がその見た目です。背景の明るさを最大にすると雰囲気が 0 になり、光だまりも消えます",
|
|
2413
|
+
"glass.glowStrength": "地面の光だまりの強さ",
|
|
2262
2414
|
"glass.previewGround": "地面サンプル",
|
|
2263
2415
|
"glass.previewGroundHint": "この帯はページの地面そのものです。背景の輝度を動かすか光だまりを切り替えると、その場で変わります。",
|
|
2264
2416
|
"glass.reset": "デフォルトに戻す",
|
|
@@ -2345,8 +2497,14 @@ window.__ModuleLoader__.load({
|
|
|
2345
2497
|
"glass.brightness": "배경 밝기",
|
|
2346
2498
|
"glass.brightnessHintDark": "다크 모드: 0이면 순수 검정, 50이면 그대로",
|
|
2347
2499
|
"glass.brightnessHintLight": "라이트 모드: 50이면 그대로, 100이면 순수 흰색",
|
|
2500
|
+
"glass.gap": "카드 간격",
|
|
2501
|
+
"glass.gapHint": "Mica 모드에서 떠 있는 카드와 창 가장자리 사이의 여백입니다. 넓히면 사이드바 카드 자체가 좁아지고 본문 열 너비는 그대로입니다. 호환 모드에는 영향이 없습니다.",
|
|
2502
|
+
"glass.gapCompact": "좁게",
|
|
2503
|
+
"glass.gapStandard": "표준",
|
|
2504
|
+
"glass.gapLoose": "넓게",
|
|
2348
2505
|
"glass.glow": "지면 광점",
|
|
2349
|
-
"glass.glowHint": "그라데이션 지면 위에 부드러운 광점 두 개를 다시 올립니다(0.6.3 모양). 광점은 화면에 고정되어 각 유리 패널이 서로 다른 부분을 비추므로 기본값은 꺼짐이며, 켜면 왼쪽 위가
|
|
2506
|
+
"glass.glowHint": "그라데이션 지면 위에 부드러운 광점 두 개를 다시 올립니다(0.6.3 모양). 광점은 화면에 고정되어 각 유리 패널이 서로 다른 부분을 비추므로 기본값은 꺼짐이며, 켜면 왼쪽 위가 밝아집니다. 아래 강도로 키울 수 있고 100%가 그 모양입니다. 배경 밝기를 최대로 올리면 분위기가 0이 되어 광점도 사라집니다",
|
|
2507
|
+
"glass.glowStrength": "지면 광점 강도",
|
|
2350
2508
|
"glass.previewGround": "바닥 샘플",
|
|
2351
2509
|
"glass.previewGroundHint": "이 띠는 페이지 바닥 그대로입니다. 배경 밝기를 움직이거나 빛무리를 켜면 바로 바뀝니다.",
|
|
2352
2510
|
"glass.reset": "기본값으로 되돌리기",
|
|
@@ -2433,8 +2591,14 @@ window.__ModuleLoader__.load({
|
|
|
2433
2591
|
"glass.brightness": "Brillo del fondo",
|
|
2434
2592
|
"glass.brightnessHintDark": "Modo oscuro: 0 atenúa a negro puro, 50 sin cambios",
|
|
2435
2593
|
"glass.brightnessHintLight": "Modo claro: 50 sin cambios, 100 aclara hasta blanco puro",
|
|
2594
|
+
"glass.gap": "Espaciado de tarjetas",
|
|
2595
|
+
"glass.gapHint": "Espacio entre las tarjetas flotantes y el borde de la ventana (solo Mica). Al ampliarlo, la tarjeta de la barra lateral se estrecha; la columna de lectura no se mueve. El modo Compatibilidad no se ve afectado.",
|
|
2596
|
+
"glass.gapCompact": "Compacto",
|
|
2597
|
+
"glass.gapStandard": "Estándar",
|
|
2598
|
+
"glass.gapLoose": "Amplio",
|
|
2436
2599
|
"glass.glow": "Destellos del fondo",
|
|
2437
|
-
"glass.glowHint": "Vuelve a añadir los dos destellos radiales suaves sobre el fondo degradado (el aspecto de 0.6.3). Están fijados a la pantalla y cada panel de vidrio deja pasar una parte distinta, por eso está desactivado por defecto; al activarlo se aclara la esquina superior izquierda",
|
|
2600
|
+
"glass.glowHint": "Vuelve a añadir los dos destellos radiales suaves sobre el fondo degradado (el aspecto de 0.6.3). Están fijados a la pantalla y cada panel de vidrio deja pasar una parte distinta, por eso está desactivado por defecto; al activarlo se aclara la esquina superior izquierda y el control de intensidad de abajo lo amplía (100 % es ese aspecto). Con el brillo del fondo al máximo la ambientación se anula y los destellos desaparecen con ella",
|
|
2601
|
+
"glass.glowStrength": "Intensidad de los destellos",
|
|
2438
2602
|
"glass.previewGround": "Muestra del fondo",
|
|
2439
2603
|
"glass.previewGroundHint": "Esta banda es el fondo real de la página: mueve el brillo o activa los destellos y cambia al instante.",
|
|
2440
2604
|
"glass.reset": "Restablecer valores",
|
|
@@ -2521,8 +2685,14 @@ window.__ModuleLoader__.load({
|
|
|
2521
2685
|
"glass.brightness": "Luminosité du fond",
|
|
2522
2686
|
"glass.brightnessHintDark": "Mode sombre : 0 atténue vers le noir pur, 50 inchangé",
|
|
2523
2687
|
"glass.brightnessHintLight": "Mode clair : 50 inchangé, 100 éclaircit vers le blanc pur",
|
|
2688
|
+
"glass.gap": "Espacement des cartes",
|
|
2689
|
+
"glass.gapHint": "Espace entre les cartes flottantes et le bord de la fenêtre (Mica uniquement). En l'augmentant, la carte de la barre latérale se rétrécit ; la colonne de lecture ne bouge pas. Le mode Compatibilité n'est pas concerné.",
|
|
2690
|
+
"glass.gapCompact": "Compact",
|
|
2691
|
+
"glass.gapStandard": "Standard",
|
|
2692
|
+
"glass.gapLoose": "Large",
|
|
2524
2693
|
"glass.glow": "Halos du fond",
|
|
2525
|
-
"glass.glowHint": "Rajoute les deux halos radiaux doux sur le fond dégradé (l'aspect 0.6.3). Ils sont fixés à l'écran et chaque panneau de verre en laisse passer une partie différente, d'où la valeur par défaut désactivée ; l'activer éclaircit le coin supérieur gauche",
|
|
2694
|
+
"glass.glowHint": "Rajoute les deux halos radiaux doux sur le fond dégradé (l'aspect 0.6.3). Ils sont fixés à l'écran et chaque panneau de verre en laisse passer une partie différente, d'où la valeur par défaut désactivée ; l'activer éclaircit le coin supérieur gauche, et le curseur d'intensité ci-dessous l'amplifie (100 % correspond à cet aspect). Au maximum de luminosité du fond, l'ambiance s'annule et les halos disparaissent avec elle",
|
|
2695
|
+
"glass.glowStrength": "Intensité des halos",
|
|
2526
2696
|
"glass.previewGround": "Échantillon du fond",
|
|
2527
2697
|
"glass.previewGroundHint": "Cette bande est le fond réel de la page : bougez la luminosité ou activez les halos et elle change aussitôt.",
|
|
2528
2698
|
"glass.reset": "Restaurer les valeurs",
|
|
@@ -2609,8 +2779,14 @@ window.__ModuleLoader__.load({
|
|
|
2609
2779
|
"glass.brightness": "Hintergrundhelligkeit",
|
|
2610
2780
|
"glass.brightnessHintDark": "Dunkelmodus: 0 verdunkelt zu reinem Schwarz, 50 unverändert",
|
|
2611
2781
|
"glass.brightnessHintLight": "Hellmodus: 50 unverändert, 100 hellt zu reinem Weiß auf",
|
|
2782
|
+
"glass.gap": "Kartenabstand",
|
|
2783
|
+
"glass.gapHint": "Abstand zwischen den schwebenden Karten und dem Fensterrand (nur Mica). Ein größerer Abstand verschmälert die Seitenleisten-Karte selbst; die Lesespalte bleibt gleich. Der Kompatibilitätsmodus ist nicht betroffen.",
|
|
2784
|
+
"glass.gapCompact": "Kompakt",
|
|
2785
|
+
"glass.gapStandard": "Standard",
|
|
2786
|
+
"glass.gapLoose": "Weit",
|
|
2612
2787
|
"glass.glow": "Hintergrund-Lichtflecken",
|
|
2613
|
-
"glass.glowHint": "Legt die beiden weichen Lichtflecken wieder über den Verlaufs-Hintergrund (das Aussehen von 0.6.3). Sie sind am Bildschirm fixiert und jede Glasscheibe lässt einen anderen Ausschnitt durch, deshalb standardmäßig aus; eingeschaltet hellt sich die linke obere Ecke auf",
|
|
2788
|
+
"glass.glowHint": "Legt die beiden weichen Lichtflecken wieder über den Verlaufs-Hintergrund (das Aussehen von 0.6.3). Sie sind am Bildschirm fixiert und jede Glasscheibe lässt einen anderen Ausschnitt durch, deshalb standardmäßig aus; eingeschaltet hellt sich die linke obere Ecke auf, und der Regler für die Stärke darunter verstärkt sie (100 % entspricht diesem Aussehen). Bei maximaler Hintergrundhelligkeit fällt die Ambience auf 0 und die Lichtflecken verschwinden mit",
|
|
2789
|
+
"glass.glowStrength": "Stärke der Lichtflecken",
|
|
2614
2790
|
"glass.previewGround": "Bodenprobe",
|
|
2615
2791
|
"glass.previewGroundHint": "Dieser Streifen ist der echte Seitenhintergrund: Helligkeit ziehen oder Lichtflecken einschalten – er ändert sich sofort.",
|
|
2616
2792
|
"glass.reset": "Standardwerte wiederherstellen",
|
|
@@ -3811,6 +3987,16 @@ window.__ModuleLoader__.load({
|
|
|
3811
3987
|
path: ["glass", "brightness"],
|
|
3812
3988
|
value: section.glass.brightness
|
|
3813
3989
|
},
|
|
3990
|
+
{
|
|
3991
|
+
op: "set",
|
|
3992
|
+
path: ["glass", "gap"],
|
|
3993
|
+
value: section.glass.gap
|
|
3994
|
+
},
|
|
3995
|
+
{
|
|
3996
|
+
op: "set",
|
|
3997
|
+
path: ["glass", "glowStrength"],
|
|
3998
|
+
value: section.glass.glowStrength
|
|
3999
|
+
},
|
|
3814
4000
|
{
|
|
3815
4001
|
op: "set",
|
|
3816
4002
|
path: ["glass", "glow"],
|
|
@@ -4609,9 +4795,15 @@ window.__ModuleLoader__.load({
|
|
|
4609
4795
|
setBrightness: (brightness) => {
|
|
4610
4796
|
glass.setBrightness(brightness);
|
|
4611
4797
|
},
|
|
4798
|
+
setGap: (gap) => {
|
|
4799
|
+
glass.setGap(gap);
|
|
4800
|
+
},
|
|
4612
4801
|
setGlow: (glow) => {
|
|
4613
4802
|
glass.setGlow(glow);
|
|
4614
4803
|
},
|
|
4804
|
+
setGlowStrength: (glowStrength) => {
|
|
4805
|
+
glass.setGlowStrength(glowStrength);
|
|
4806
|
+
},
|
|
4615
4807
|
resetDefaults: () => {
|
|
4616
4808
|
glass.resetDefaults();
|
|
4617
4809
|
}
|