@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 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 sane range. */
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 === "blur" ? 40 : 100;
836
- return Number.isFinite(value) ? Math.min(max, Math.max(0, value)) : SETTINGS_DEFAULTS[key];
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
  }