@deepseek-ai/dsh-client-ui-theme 0.1.0-rc.6 → 0.1.0-rc.8

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.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/client/ui-theme/README.md
5
- README.md: e84a21f085eaef7546321edc90847a9a3f9bb2b8
6
- README.zh.md: 758b6f52d330f4518a2df5267117b61446102ea7
5
+ README.md: a9f0eb428789bc117e2fcbbdd2366066e0b994cc
6
+ README.zh.md: 9fafc575f2b307efacb0178ded87f7521349268a
package/README.md CHANGED
@@ -6,7 +6,7 @@ Theme plugin: ThemeRuntime over the --dsw-* token base stylesheets (static scale
6
6
 
7
7
  When the host composition includes an HTTP server, the host half injects a synchronous bootstrap immediately after the opening `<body>` tag. Each index response embeds the registered Host setting for `ui-theme.preference`, or `system` when no settings provider is present; the browser resolves `system` from the OS scheme, then sets `color-scheme` and `body[data-ds-dark-theme]` before the shell loading page renders. Compositions without an HTTP server remain unaffected, and ThemeRuntime and ui-layout remain authoritative for client state and subsequent DOM updates after the plugin tree activates.
8
8
 
9
- `src/styles/` holds five sheets, all imported by the web shell's `base.css`: `base.css`, `design-platform.css`, `scrollbar.css`, `gradient-shadow-text.css`, and `shiki.css`. `scrollbar.css` is the sole consumer of the `--dsw-alias-scrollbar-*` tokens and must follow `design-platform.css`, which declares them.
9
+ `src/styles/` holds five sheets imported in order by ui-theme's dynamic client entry: `base.css`, `design-platform.css`, `scrollbar.css`, `gradient-shadow-text.css`, and `shiki.css`. The client bundle compiles and injects them as plugin-owned global styles, so unload and HMR remove them with ui-theme instead of leaving theme CSS in the static web shell. `scrollbar.css` is the sole consumer of the `--dsw-alias-scrollbar-*` tokens and must follow `design-platform.css`, which declares them.
10
10
 
11
11
  Scrollbar rebinding contract: `scrollbar.css` binds `--dsh-scrollbar-thumb` and `--dsh-scrollbar-thumb-hover` on `body` to the l1 (base-surface) tokens, and both rendering paths read that pair. An elevated surface (menu, popover, dialog) sets `--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2)` and `--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2)` on its own container; one rebind retints whichever path the engine took. The pair's other legal target is `transparent`, which draws no thumb at all — [ui-sidebar](../ui-sidebar/README.md) rebinds its column that way while the pointer is elsewhere. A rebind to the l1 pair is not a rebind; it restates the base-surface default. `--dsh-scrollbar-width` mirrors the WebKit bar's layout width for surfaces that align themselves beside a space-consuming bar — [ui-conversation](../ui-conversation/README.md) reads it for the overlay composer seat's `right` offset — and the scrollbar-styles spec pairs it with the mirrored rule and the consumer.
12
12
 
package/README.zh.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  当主机组合包含 HTTP 服务器时,主机侧紧接 `<body>` 起始标签注入同步引导代码。每份 index 响应会嵌入已注册的 Host 设置 `ui-theme.preference`,没有 settings provider 时则嵌入 `system`;浏览器按操作系统配色解析 `system`,随后在外壳加载页面渲染前设置 `color-scheme` 和 `body[data-ds-dark-theme]`。不含 HTTP 服务器的组合不受影响,插件树激活后,ThemeRuntime 与 ui-layout 仍分别是客户端状态和后续 DOM 更新的权威来源。
8
8
 
9
- `src/styles/` 下有五张样式表,全部由 web 壳的 `base.css` 导入:`base.css`、`design-platform.css`、`scrollbar.css`、`gradient-shadow-text.css` 与 `shiki.css`。`scrollbar.css` 是 `--dsw-alias-scrollbar-*` token 的唯一消费方,必须排在声明这些 token 的 `design-platform.css` 之后。
9
+ `src/styles/` 下有五张样式表,由 ui-theme 的动态客户端 entry 依次导入:`base.css`、`design-platform.css`、`scrollbar.css`、`gradient-shadow-text.css` 与 `shiki.css`。客户端 bundle 将其编译并注入为插件持有的全局样式,因此卸载与 HMR 会随 ui-theme 一同移除这些样式,而不会把主题 CSS 留在静态 Web 外壳中。`scrollbar.css` 是 `--dsw-alias-scrollbar-*` token 的唯一消费方,必须排在声明这些 token 的 `design-platform.css` 之后。
10
10
 
11
11
  滚动条重新绑定约定:`scrollbar.css` 在 `body` 上把 `--dsh-scrollbar-thumb` 与 `--dsh-scrollbar-thumb-hover` 绑定到 l1(基础表面)token,两条渲染路径都读取这一组变量。高层级表面(菜单、浮层、对话框)在自己的容器上设置 `--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2)` 与 `--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2)`;一次重新绑定即可为引擎实际走的那条路径换色。这组变量的另一个合法目标是 `transparent`,即完全不绘制滑块——[ui-sidebar](../ui-sidebar/README.md) 在指针不在栏内时就这样重新绑定自己的列。绑回 l1 那组不算重新绑定,它只是重述基础表面的默认值。`--dsh-scrollbar-width` 镜像 WebKit 滚动条的布局宽度,供需要与占布局宽度的滚动条对齐的表面使用——[ui-conversation](../ui-conversation/README.md) 用它作为覆盖 composer 座位 `right` 偏移——scrollbar-styles 规格把它与镜像规则及消费者配对检查。
12
12
 
package/lib/client.js CHANGED
@@ -33,11 +33,11 @@ window.__ModuleLoader__.load({
33
33
  document.head.appendChild(tag);
34
34
  }
35
35
  var AppearanceRow_module_css_default = {
36
- "themeCube": "_8HJdBW_themeCube",
37
- "title": "_8HJdBW_title",
38
- "group": "_8HJdBW_group",
39
36
  "cubeRow": "_8HJdBW_cubeRow",
40
- "selected": "_8HJdBW_selected"
37
+ "group": "_8HJdBW_group",
38
+ "selected": "_8HJdBW_selected",
39
+ "themeCube": "_8HJdBW_themeCube",
40
+ "title": "_8HJdBW_title"
41
41
  };
42
42
  //#endregion
43
43
  //#region lib/types/client/AppearanceRow.js
@@ -117,6 +117,48 @@ window.__ModuleLoader__.load({
117
117
  });
118
118
  }
119
119
  //#endregion
120
+ //#region \0dsh-inline-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-theme/src/styles/base.css.mjs
121
+ var base_css_default = ":root{--dsw-font-family:-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;--ds-font-family-code:\"SF Mono\", \"JetBrains Mono\", \"Fira Code\", Consolas, \"Liberation Mono\", Menlo, Courier, \"PingFang SC\", \"Microsoft YaHei\";--ds-ease-in-out:cubic-bezier(.4, 0, .2, 1);--ds-transition-duration:.2s;--ds-transition-duration-fast:.1s;--ds-transition-duration-slow:.3s}";
122
+ //#endregion
123
+ //#region \0dsh-inline-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-theme/src/styles/design-platform.css.mjs
124
+ var design_platform_css_default = "body{--dsw-static-amber-100:#fef5e7;--dsw-static-amber-400:#f7ad31;--dsw-static-amber-500:#f59e0b;--dsw-static-amber-600:#dd8629;--dsw-static-amber-900:#27241f;--dsw-static-blue-100:#dbeafe;--dsw-static-blue-300:#93c5fd;--dsw-static-blue-400:#60a5fa;--dsw-static-blue-450:#4d93f8;--dsw-static-blue-500:#3b82f6;--dsw-static-blue-50:#eff6ff;--dsw-static-blue-50p:#eaf3ff;--dsw-static-blue-600:#2563eb;--dsw-static-blue-75:#e5f0ff;--dsw-static-blue-800:#1e40af;--dsw-static-blue-900:#0e3074;--dsw-static-blue-950:#172554;--dsw-static-deepseek-100:#e4edfd;--dsw-static-deepseek-200:#d3e2ff;--dsw-static-deepseek-300:#b7c8fe;--dsw-static-deepseek-400:#679efe;--dsw-static-deepseek-450:#5686fe;--dsw-static-deepseek-500:#4176e6;--dsw-static-deepseek-50:#edf3fe;--dsw-static-deepseek-600:#4868b2;--dsw-static-deepseek-700-delete:#2f4c8f;--dsw-static-deepseek-800:#34415b;--dsw-static-deepseek-900:#283142;--dsw-static-green-100:#e6faed;--dsw-static-green-400:#4ed17e;--dsw-static-green-500:#22c55e;--dsw-static-green-900:#233c2c;--dsw-static-neutral-00:#fff;--dsw-static-neutral-1000:#000;--dsw-static-neutral-100:#f5f5f5;--dsw-static-neutral-150:#ededed;--dsw-static-neutral-200:#e5e5e5;--dsw-static-neutral-250:#dcdcdc;--dsw-static-neutral-300:#d4d4d4;--dsw-static-neutral-400:#a2a4a6;--dsw-static-neutral-500:#7f8287;--dsw-static-neutral-50:#fafafa;--dsw-static-neutral-550:#65676b;--dsw-static-neutral-600:#545557;--dsw-static-neutral-700:#3c3c3d;--dsw-static-neutral-800:#292929;--dsw-static-neutral-850:#212123;--dsw-static-neutral-900:#0f0f0f;--dsw-static-neutral-bluish-00:#fff;--dsw-static-neutral-bluish-1000:#0f1115;--dsw-static-neutral-bluish-100:#ebeef2;--dsw-static-neutral-bluish-150:#e9ecf2;--dsw-static-neutral-bluish-200:#e1e5ee;--dsw-static-neutral-bluish-300:#cfd3d6;--dsw-static-neutral-bluish-400:#adb2b8;--dsw-static-neutral-bluish-500:#979da6;--dsw-static-neutral-bluish-50:#f9fafb;--dsw-static-neutral-bluish-600:#81858c;--dsw-static-neutral-bluish-60:#f5f6f7;--dsw-static-neutral-bluish-700:#61666b;--dsw-static-neutral-bluish-750:#43454a;--dsw-static-neutral-bluish-75:#f1f3f5;--dsw-static-neutral-bluish-800:#353638;--dsw-static-neutral-bluish-850:#2c2c2e;--dsw-static-neutral-bluish-875:#232324;--dsw-static-neutral-bluish-900:#1b1b1c;--dsw-static-neutral-bluish-950:#151517;--dsw-static-red-100:#fee2e2;--dsw-static-red-400:#f25a5a;--dsw-static-red-500:#ef4444;--dsw-static-red-50:#fef2f2;--dsw-static-red-600:#ec1313;--dsw-static-red-900:#570c0c}body[data-ds-dark-theme]{--dsw-static-amber-100:#fef5e7;--dsw-static-amber-400:#f7ad31;--dsw-static-amber-500:#f59e0b;--dsw-static-amber-600:#dd8629;--dsw-static-amber-900:#27241f;--dsw-static-blue-100:#dbeafe;--dsw-static-blue-300:#93c5fd;--dsw-static-blue-400:#60a5fa;--dsw-static-blue-450:#4d93f8;--dsw-static-blue-500:#3b82f6;--dsw-static-blue-50:#eff6ff;--dsw-static-blue-50p:#eaf3ff;--dsw-static-blue-600:#2563eb;--dsw-static-blue-75:#e5f0ff;--dsw-static-blue-800:#1e40af;--dsw-static-blue-900:#0e3074;--dsw-static-blue-950:#172554;--dsw-static-deepseek-100:#e4edfd;--dsw-static-deepseek-200:#d3e2ff;--dsw-static-deepseek-300:#b7c8fe;--dsw-static-deepseek-400:#679efe;--dsw-static-deepseek-450:#5686fe;--dsw-static-deepseek-500:#4176e6;--dsw-static-deepseek-50:#edf3fe;--dsw-static-deepseek-600:#4868b2;--dsw-static-deepseek-700-delete:#2f4c8f;--dsw-static-deepseek-800:#34415b;--dsw-static-deepseek-900:#283142;--dsw-static-green-100:#e6faed;--dsw-static-green-400:#4ed17e;--dsw-static-green-500:#22c55e;--dsw-static-green-900:#233c2c;--dsw-static-neutral-00:#fff;--dsw-static-neutral-1000:#000;--dsw-static-neutral-100:#f5f5f5;--dsw-static-neutral-150:#ededed;--dsw-static-neutral-200:#e5e5e5;--dsw-static-neutral-250:#dcdcdc;--dsw-static-neutral-300:#d4d4d4;--dsw-static-neutral-400:#a2a4a6;--dsw-static-neutral-500:#7f8287;--dsw-static-neutral-50:#fafafa;--dsw-static-neutral-550:#65676b;--dsw-static-neutral-600:#545557;--dsw-static-neutral-700:#3c3c3d;--dsw-static-neutral-800:#292929;--dsw-static-neutral-850:#212123;--dsw-static-neutral-900:#0f0f0f;--dsw-static-neutral-bluish-00:#fff;--dsw-static-neutral-bluish-1000:#0f1115;--dsw-static-neutral-bluish-100:#ebeef2;--dsw-static-neutral-bluish-150:#e9ecf2;--dsw-static-neutral-bluish-200:#e1e5ee;--dsw-static-neutral-bluish-300:#cfd3d6;--dsw-static-neutral-bluish-400:#adb2b8;--dsw-static-neutral-bluish-500:#979da6;--dsw-static-neutral-bluish-50:#f9fafb;--dsw-static-neutral-bluish-600:#81858c;--dsw-static-neutral-bluish-60:#f9fafb;--dsw-static-neutral-bluish-700:#61666b;--dsw-static-neutral-bluish-750:#43454a;--dsw-static-neutral-bluish-75:#f1f3f5;--dsw-static-neutral-bluish-800:#353638;--dsw-static-neutral-bluish-850:#2c2c2e;--dsw-static-neutral-bluish-875:#232324;--dsw-static-neutral-bluish-900:#1b1b1c;--dsw-static-neutral-bluish-950:#151517;--dsw-static-red-100:#fee2e2;--dsw-static-red-400:#f25a5a;--dsw-static-red-500:#ef4444;--dsw-static-red-50:#fef2f2;--dsw-static-red-600:#ec1313;--dsw-static-red-900:#570c0c}body{--dsw-alias-bg-base:var(--dsw-static-neutral-bluish-00);--dsw-alias-bg-layer-1:var(--dsw-static-neutral-bluish-00);--dsw-alias-bg-layer-2:var(--dsw-static-neutral-bluish-00);--dsw-alias-bg-layer-3:var(--dsw-static-neutral-bluish-00);--dsw-alias-bg-mask-1:#0000003d;--dsw-alias-bg-mask-2:#0000001f;--dsw-alias-bg-mask-3:#0000007a;--dsw-alias-bg-mask-photo:#000000e0;--dsw-alias-bg-mask-drop:#ffffffb3;--dsw-alias-bg-module-platform:var(--dsw-static-neutral-bluish-60);--dsw-alias-bg-multi-select:var(--dsw-static-neutral-bluish-60);--dsw-alias-bg-overlay:var(--dsw-static-neutral-bluish-150);--dsw-alias-bg-skeleton:#0000000a;--dsw-alias-border-inverted2:#0000;--dsw-alias-border-inverted:#0000;--dsw-alias-border-l1:#0000000a;--dsw-alias-border-l2-darkmode-thin:#0000001a;--dsw-alias-border-l2:#0000001a;--dsw-alias-border-l3:#0000001f;--dsw-alias-border-l4:#00000029;--dsw-alias-brand-primary-invert:var(--dsw-static-neutral-bluish-1000);--dsw-alias-brand-primary-new-colorprimary-new-color:#4176e6;--dsw-alias-brand-primary:var(--dsw-static-neutral-bluish-1000);--dsw-alias-brand-text:var(--dsw-static-neutral-bluish-1000);--dsw-alias-button-contrast-fill:var(--dsw-static-neutral-bluish-700);--dsw-alias-button-elevated-fill:var(--dsw-static-neutral-bluish-00);--dsw-alias-button-floating-fill:var(--dsw-static-neutral-bluish-00);--dsw-alias-button-floating-hover:var(--dsw-static-neutral-bluish-75);--dsw-alias-button-ghost-active-border:var(--dsw-static-neutral-bluish-500);--dsw-alias-button-ghost-active-fill:var(--dsw-static-neutral-bluish-100);--dsw-alias-button-ghost-active-hover:var(--dsw-static-neutral-bluish-150);--dsw-alias-button-info-fill:var(--dsw-static-deepseek-500);--dsw-alias-button-info-hover:var(--dsw-static-deepseek-400);--dsw-alias-button-primary-dimmed:var(--dsw-static-neutral-bluish-100);--dsw-alias-button-primary-fill:var(--dsw-alias-brand-primary);--dsw-alias-button-primary-hover:var(--dsw-static-neutral-bluish-750);--dsw-alias-button-tool-bar-fill-invisible:#1f1f1f5c;--dsw-alias-button-tool-bar-fill:#54555780;--dsw-alias-button-tool-bar-hover:#54555799;--dsw-alias-interactive-bg-active:#2631481a;--dsw-alias-interactive-bg-hover-accent:#26314824;--dsw-alias-interactive-bg-hover-danger:#ec13130d;--dsw-alias-interactive-bg-hover-solid:var(--dsw-static-neutral-bluish-75);--dsw-alias-interactive-bg-hover:#2631480f;--dsw-alias-label-caption:var(--dsw-static-neutral-bluish-400);--dsw-alias-label-dimmed:var(--dsw-static-neutral-bluish-200);--dsw-alias-label-primary-bluish:var(--dsw-static-blue-900);--dsw-alias-label-primary-dimmed:var(--dsw-static-neutral-bluish-950);--dsw-alias-label-primary-foreground:var(--dsw-static-neutral-bluish-00);--dsw-alias-label-primary-inverted:var(--dsw-static-neutral-bluish-00);--dsw-alias-label-primary:var(--dsw-static-neutral-bluish-1000);--dsw-alias-label-secondary:var(--dsw-static-neutral-bluish-700);--dsw-alias-label-tertiary:var(--dsw-static-neutral-bluish-600);--dsw-alias-markdown-citation:var(--dsw-static-neutral-bluish-100);--dsw-alias-markdown-code-block-banner:var(--dsw-static-neutral-bluish-50);--dsw-alias-markdown-code-block:var(--dsw-static-neutral-bluish-50);--dsw-alias-markdown-code-segment-selected:var(--dsw-static-neutral-bluish-00);--dsw-alias-markdown-code-segment-unselected:var(--dsw-static-neutral-bluish-75);--dsw-alias-markdown-inline-code:var(--dsw-static-neutral-bluish-100);--dsw-alias-markdown-placeholder:var(--dsw-static-neutral-bluish-60);--dsw-alias-markdown-tag:var(--dsw-static-neutral-bluish-75);--dsw-alias-scrollbar-bg-l1:var(--dsw-static-neutral-200);--dsw-alias-scrollbar-bg-l2:var(--dsw-static-neutral-200);--dsw-alias-scrollbar-hover-l1:var(--dsw-static-neutral-300);--dsw-alias-scrollbar-hover-l2:var(--dsw-static-neutral-300);--dsw-alias-state-business-primary:var(--dsw-static-deepseek-500);--dsw-alias-state-business-tertiary:var(--dsw-static-deepseek-100);--dsw-alias-state-error-primary:var(--dsw-static-red-600);--dsw-alias-state-error-secondary:var(--dsw-static-red-400);--dsw-alias-state-success-primary:var(--dsw-static-green-500);--dsw-alias-state-success-secondary:var(--dsw-static-green-400);--dsw-alias-state-success-tertiary:var(--dsw-static-green-100);--dsw-alias-state-warn-label:var(--dsw-static-amber-600);--dsw-alias-state-warn-primary:var(--dsw-static-amber-500);--dsw-alias-state-warn-secondary:var(--dsw-static-amber-400);--dsw-alias-state-warn-tertiary:var(--dsw-static-amber-100);--dsw-alias-toast-bg:var(--dsw-static-neutral-bluish-800);--dsw-alias-tooltip-bg:var(--dsw-static-neutral-bluish-850);--dsw-specific-bubble-highlight:var(--dsw-static-deepseek-200);--dsw-specific-bubble:var(--dsw-static-deepseek-50);--dsw-specific-input-major:var(--dsw-static-neutral-bluish-00);--dsw-specific-login-input:var(--dsw-static-neutral-bluish-50);--dsw-specific-menu:var(--dsw-alias-bg-layer-3);--dsw-specific-selector:var(--dsw-static-neutral-bluish-60);--dsw-specific-sidebar-fill:var(--dsw-static-neutral-bluish-50);--dsw-specific-sidebar-nav-item-active-accent:var(--dsw-static-deepseek-100);--dsw-specific-sidebar-nav-item-active:var(--dsw-static-neutral-bluish-100);--dsw-specific-sidebar-nav-item-hover:var(--dsw-static-neutral-bluish-75);--dsw-specific-tip:var(--dsw-static-neutral-bluish-60)}body[data-ds-dark-theme]{--dsw-alias-bg-base:var(--dsw-static-neutral-bluish-950);--dsw-alias-bg-layer-1:var(--dsw-static-neutral-bluish-875);--dsw-alias-bg-layer-2:var(--dsw-static-neutral-bluish-850);--dsw-alias-bg-layer-3:var(--dsw-static-neutral-bluish-800);--dsw-alias-bg-mask-1:#00000080;--dsw-alias-bg-mask-2:#0003;--dsw-alias-bg-mask-3:#0000007a;--dsw-alias-bg-mask-photo:#000000e0;--dsw-alias-bg-mask-drop:#272730b3;--dsw-alias-bg-module-platform:var(--dsw-static-neutral-bluish-800);--dsw-alias-bg-multi-select:var(--dsw-static-neutral-850);--dsw-alias-bg-overlay:var(--dsw-static-neutral-bluish-700);--dsw-alias-bg-skeleton:#ffffff14;--dsw-alias-border-inverted2:#ffffff14;--dsw-alias-border-inverted:#ffffff0f;--dsw-alias-border-l1:#ffffff0f;--dsw-alias-border-l2-darkmode-thin:#ffffff0f;--dsw-alias-border-l2:#ffffff1f;--dsw-alias-border-l3:#ffffff29;--dsw-alias-border-l4:#fff3;--dsw-alias-brand-primary-invert:var(--dsw-static-neutral-bluish-50);--dsw-alias-brand-primary-new-colorprimary-new-color:var(--dsw-static-deepseek-450);--dsw-alias-brand-primary:var(--dsw-static-neutral-bluish-50);--dsw-alias-brand-text:var(--dsw-static-neutral-bluish-50);--dsw-alias-button-contrast-fill:var(--dsw-static-neutral-bluish-50);--dsw-alias-button-elevated-fill:var(--dsw-static-neutral-bluish-750);--dsw-alias-button-floating-fill:var(--dsw-static-neutral-bluish-850);--dsw-alias-button-floating-hover:var(--dsw-static-neutral-bluish-800);--dsw-alias-button-ghost-active-border:var(--dsw-static-neutral-bluish-600);--dsw-alias-button-ghost-active-fill:var(--dsw-static-neutral-bluish-750);--dsw-alias-button-ghost-active-hover:var(--dsw-static-neutral-bluish-700);--dsw-alias-button-info-fill:var(--dsw-static-deepseek-400);--dsw-alias-button-info-hover:var(--dsw-static-deepseek-500);--dsw-alias-button-primary-dimmed:var(--dsw-static-neutral-bluish-750);--dsw-alias-button-primary-fill:var(--dsw-alias-brand-primary);--dsw-alias-button-primary-hover:var(--dsw-static-neutral-bluish-100);--dsw-alias-button-tool-bar-fill-invisible:#1f1f1f5c;--dsw-alias-button-tool-bar-fill:#54555780;--dsw-alias-button-tool-bar-hover:#54555799;--dsw-alias-interactive-bg-active:#ffffff24;--dsw-alias-interactive-bg-hover-accent:#ffffff3d;--dsw-alias-interactive-bg-hover-danger:#f25a5a26;--dsw-alias-interactive-bg-hover-solid:var(--dsw-static-neutral-bluish-800);--dsw-alias-interactive-bg-hover:#ffffff14;--dsw-alias-label-caption:var(--dsw-static-neutral-bluish-600);--dsw-alias-label-dimmed:var(--dsw-static-neutral-bluish-750);--dsw-alias-label-primary-bluish:var(--dsw-static-neutral-bluish-50);--dsw-alias-label-primary-dimmed:var(--dsw-static-neutral-bluish-100);--dsw-alias-label-primary-foreground:var(--dsw-static-neutral-bluish-1000);--dsw-alias-label-primary-inverted:var(--dsw-static-neutral-bluish-800);--dsw-alias-label-primary:var(--dsw-static-neutral-bluish-50);--dsw-alias-label-secondary:var(--dsw-static-neutral-bluish-300);--dsw-alias-label-tertiary:var(--dsw-static-neutral-bluish-400);--dsw-alias-markdown-citation:var(--dsw-static-neutral-bluish-800);--dsw-alias-markdown-code-block-banner:var(--dsw-static-neutral-bluish-850);--dsw-alias-markdown-code-block:var(--dsw-static-neutral-bluish-900);--dsw-alias-markdown-code-segment-selected:var(--dsw-static-neutral-bluish-800);--dsw-alias-markdown-code-segment-unselected:var(--dsw-static-neutral-bluish-900);--dsw-alias-markdown-inline-code:var(--dsw-static-neutral-bluish-850);--dsw-alias-markdown-placeholder:var(--dsw-static-neutral-bluish-850);--dsw-alias-markdown-tag:var(--dsw-static-neutral-bluish-850);--dsw-alias-scrollbar-bg-l1:var(--dsw-static-neutral-700);--dsw-alias-scrollbar-bg-l2:var(--dsw-static-neutral-600);--dsw-alias-scrollbar-hover-l1:var(--dsw-static-neutral-600);--dsw-alias-scrollbar-hover-l2:var(--dsw-static-neutral-550);--dsw-alias-state-business-primary:var(--dsw-static-deepseek-400);--dsw-alias-state-business-tertiary:var(--dsw-static-deepseek-800);--dsw-alias-state-error-primary:var(--dsw-static-red-400);--dsw-alias-state-error-secondary:var(--dsw-static-red-400);--dsw-alias-state-success-primary:var(--dsw-static-green-500);--dsw-alias-state-success-secondary:var(--dsw-static-green-400);--dsw-alias-state-success-tertiary:var(--dsw-static-green-900);--dsw-alias-state-warn-label:var(--dsw-static-amber-600);--dsw-alias-state-warn-primary:var(--dsw-static-amber-500);--dsw-alias-state-warn-secondary:var(--dsw-static-amber-400);--dsw-alias-state-warn-tertiary:var(--dsw-static-amber-900);--dsw-alias-toast-bg:var(--dsw-static-neutral-bluish-750);--dsw-alias-tooltip-bg:var(--dsw-static-neutral-bluish-750);--dsw-specific-bubble-highlight:var(--dsw-static-neutral-bluish-750);--dsw-specific-bubble:var(--dsw-static-neutral-bluish-850);--dsw-specific-input-major:var(--dsw-static-neutral-bluish-850);--dsw-specific-login-input:var(--dsw-static-neutral-bluish-900);--dsw-specific-menu:var(--dsw-alias-bg-layer-3);--dsw-specific-selector:var(--dsw-static-neutral-bluish-800);--dsw-specific-sidebar-fill:var(--dsw-static-neutral-bluish-900);--dsw-specific-sidebar-nav-item-active-accent:var(--dsw-static-neutral-bluish-800);--dsw-specific-sidebar-nav-item-active:var(--dsw-static-neutral-bluish-750);--dsw-specific-sidebar-nav-item-hover:var(--dsw-static-neutral-bluish-850);--dsw-specific-tip:var(--dsw-static-neutral-bluish-800)}";
125
+ //#endregion
126
+ //#region \0dsh-inline-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-theme/src/styles/scrollbar.css.mjs
127
+ var scrollbar_css_default = "body{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l1);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l1);--dsh-scrollbar-width:8px}@supports not selector(::-webkit-scrollbar){body,body *{scrollbar-width:thin;scrollbar-color:var(--dsh-scrollbar-thumb) transparent}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--dsh-scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--dsh-scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:0 0}";
128
+ //#endregion
129
+ //#region \0dsh-inline-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-theme/src/styles/gradient-shadow-text.css.mjs
130
+ var gradient_shadow_text_css_default = "body{--dsw-linear-gradient-think:linear-gradient(180deg, #fff 20.19%, #fff0 100%);--dsw-linear-think-select:linear-gradient(180deg, #f5f6f7 20.19%, #f5f6f700 100%);--dsw-shadow-lv1:0 2px 4px 0 #0000000d;--dsw-shadow-lv1-blur:0 4px 12px 0 #00000005;--dsw-shadow-lv2:0 4px 12px 0 #00000005, 0 2px 8px 0 #0000000a;--dsw-shadow-lv3:0 0 1px 0 #0003, 0 0 4px 0 #00000005, 0 12px 32px 0 #00000014;--dsw-mask-blur:blur(2px)}body[data-ds-dark-theme]{--dsw-linear-gradient-think:linear-gradient(180deg, #151517 20.19%, #15151700 100%);--dsw-linear-think-select:linear-gradient(180deg, #232325 20.19%, #23232500 100%)}body{--dsw-font-markdown-h1:700 24px/34px var(--dsw-font-family);--dsw-font-markdown-h1-font-family:var(--dsw-font-family);--dsw-font-markdown-h1-font-weight:700;--dsw-font-markdown-h1-line-height:34px;--dsw-font-markdown-h1-font-size:24px;--dsw-font-markdown-h1-font-style:normal;--dsw-font-markdown-h2:700 22px/32px var(--dsw-font-family);--dsw-font-markdown-h2-font-family:var(--dsw-font-family);--dsw-font-markdown-h2-font-weight:700;--dsw-font-markdown-h2-line-height:32px;--dsw-font-markdown-h2-font-size:22px;--dsw-font-markdown-h2-font-style:normal;--dsw-font-markdown-h3:700 20px/30px var(--dsw-font-family);--dsw-font-markdown-h3-font-family:var(--dsw-font-family);--dsw-font-markdown-h3-font-weight:700;--dsw-font-markdown-h3-line-height:30px;--dsw-font-markdown-h3-font-size:20px;--dsw-font-markdown-h3-font-style:normal;--dsw-font-markdown-h4:600 16px/28px var(--dsw-font-family);--dsw-font-markdown-h4-font-family:var(--dsw-font-family);--dsw-font-markdown-h4-font-weight:600;--dsw-font-markdown-h4-line-height:28px;--dsw-font-markdown-h4-font-size:16px;--dsw-font-markdown-h4-font-style:normal;--dsw-font-markdown-base:16px/28px var(--dsw-font-family);--dsw-font-markdown-base-font-family:var(--dsw-font-family);--dsw-font-markdown-base-font-weight:400;--dsw-font-markdown-base-line-height:28px;--dsw-font-markdown-base-font-size:16px;--dsw-font-markdown-base-font-style:normal;--dsw-font-markdown-base-strong:600 16px/28px var(--dsw-font-family);--dsw-font-markdown-base-strong-font-family:var(--dsw-font-family);--dsw-font-markdown-base-strong-font-weight:600;--dsw-font-markdown-base-strong-line-height:28px;--dsw-font-markdown-base-strong-font-size:16px;--dsw-font-markdown-base-strong-font-style:normal;--dsw-font-markdown-base-italic:italic 16px/28px var(--dsw-font-family);--dsw-font-markdown-base-italic-font-family:var(--dsw-font-family);--dsw-font-markdown-base-italic-font-weight:400;--dsw-font-markdown-base-italic-line-height:28px;--dsw-font-markdown-base-italic-font-size:16px;--dsw-font-markdown-base-italic-font-style:italic;--dsw-font-markdown-base-strong-italic:italic 600 16px/28px var(--dsw-font-family);--dsw-font-markdown-base-strong-italic-font-family:var(--dsw-font-family);--dsw-font-markdown-base-strong-italic-font-weight:600;--dsw-font-markdown-base-strong-italic-line-height:28px;--dsw-font-markdown-base-strong-italic-font-size:16px;--dsw-font-markdown-base-strong-italic-font-style:italic;--dsw-font-markdown-table:15px/25px var(--dsw-font-family);--dsw-font-markdown-table-font-family:var(--dsw-font-family);--dsw-font-markdown-table-font-weight:400;--dsw-font-markdown-table-line-height:25px;--dsw-font-markdown-table-font-size:15px;--dsw-font-markdown-table-font-style:normal;--dsw-font-markdown-table-head:500 15px/25px var(--dsw-font-family);--dsw-font-markdown-table-head-font-family:var(--dsw-font-family);--dsw-font-markdown-table-head-font-weight:500;--dsw-font-markdown-table-head-line-height:25px;--dsw-font-markdown-table-head-font-size:15px;--dsw-font-markdown-table-head-font-style:normal;--dsw-font-markdown-small:14px/24px var(--dsw-font-family);--dsw-font-markdown-small-font-family:var(--dsw-font-family);--dsw-font-markdown-small-font-weight:400;--dsw-font-markdown-small-line-height:24px;--dsw-font-markdown-small-font-size:14px;--dsw-font-markdown-small-font-style:normal;--dsw-font-markdown-small-strong:600 14px/24px var(--dsw-font-family);--dsw-font-markdown-small-strong-font-family:var(--dsw-font-family);--dsw-font-markdown-small-strong-font-weight:600;--dsw-font-markdown-small-strong-line-height:24px;--dsw-font-markdown-small-strong-font-size:14px;--dsw-font-markdown-small-strong-font-style:normal;--dsw-font-markdown-small-italic:italic 14px/24px var(--dsw-font-family);--dsw-font-markdown-small-italic-font-family:var(--dsw-font-family);--dsw-font-markdown-small-italic-font-weight:400;--dsw-font-markdown-small-italic-line-height:24px;--dsw-font-markdown-small-italic-font-size:14px;--dsw-font-markdown-small-italic-font-style:italic;--dsw-font-markdown-small-strong-italic:italic 600 14px/24px var(--dsw-font-family);--dsw-font-markdown-small-strong-italic-font-family:var(--dsw-font-family);--dsw-font-markdown-small-strong-italic-font-weight:600;--dsw-font-markdown-small-strong-italic-line-height:24px;--dsw-font-markdown-small-strong-italic-font-size:14px;--dsw-font-markdown-small-strong-italic-font-style:italic;--dsw-font-markdown-code:14px/22px var(--ds-font-family-code);--dsw-font-markdown-code-font-family:var(--ds-font-family-code);--dsw-font-markdown-code-font-weight:400;--dsw-font-markdown-code-line-height:22px;--dsw-font-markdown-code-font-size:14px;--dsw-font-markdown-code-font-style:normal;--dsw-font-markdown-code-block:13px/22px var(--ds-font-family-code);--dsw-font-markdown-code-block-font-family:var(--ds-font-family-code);--dsw-font-markdown-code-block-font-weight:400;--dsw-font-markdown-code-block-line-height:22px;--dsw-font-markdown-code-block-font-size:13px;--dsw-font-markdown-code-block-font-style:normal;--dsw-font-markdown-code-block-small:12px/18px var(--ds-font-family-code);--dsw-font-markdown-code-block-small-font-family:var(--ds-font-family-code);--dsw-font-markdown-code-block-small-font-weight:400;--dsw-font-markdown-code-block-small-line-height:18px;--dsw-font-markdown-code-block-small-font-size:12px;--dsw-font-markdown-code-block-small-font-style:normal;--dsw-font-xl-24:600 24px/32px var(--dsw-font-family);--dsw-font-xl-24-font-family:var(--dsw-font-family);--dsw-font-xl-24-font-weight:600;--dsw-font-xl-24-line-height:32px;--dsw-font-xl-24-font-size:24px;--dsw-font-xl-24-font-style:normal;--dsw-font-l-20:500 20px/28px var(--dsw-font-family);--dsw-font-l-20-font-family:var(--dsw-font-family);--dsw-font-l-20-font-weight:500;--dsw-font-l-20-line-height:28px;--dsw-font-l-20-font-size:20px;--dsw-font-l-20-font-style:normal;--dsw-font-m-18:500 16px/28px var(--dsw-font-family);--dsw-font-m-18-font-family:var(--dsw-font-family);--dsw-font-m-18-font-weight:500;--dsw-font-m-18-line-height:28px;--dsw-font-m-18-font-size:16px;--dsw-font-m-18-font-style:normal;--dsw-font-base-16:16px/24px var(--dsw-font-family);--dsw-font-base-16-font-family:var(--dsw-font-family);--dsw-font-base-16-font-weight:400;--dsw-font-base-16-line-height:24px;--dsw-font-base-16-font-size:16px;--dsw-font-base-16-font-style:normal;--dsw-font-base-strong-16:500 16px/24px var(--dsw-font-family);--dsw-font-base-strong-16-font-family:var(--dsw-font-family);--dsw-font-base-strong-16-font-weight:500;--dsw-font-base-strong-16-line-height:24px;--dsw-font-base-strong-16-font-size:16px;--dsw-font-base-strong-16-font-style:normal;--dsw-font-s-14:14px/22px var(--dsw-font-family);--dsw-font-s-14-font-family:var(--dsw-font-family);--dsw-font-s-14-font-weight:400;--dsw-font-s-14-line-height:22px;--dsw-font-s-14-font-size:14px;--dsw-font-s-14-font-style:normal;--dsw-font-s-strong-14:500 14px/22px var(--dsw-font-family);--dsw-font-s-strong-14-font-family:var(--dsw-font-family);--dsw-font-s-strong-14-font-weight:500;--dsw-font-s-strong-14-line-height:22px;--dsw-font-s-strong-14-font-size:14px;--dsw-font-s-strong-14-font-style:normal;--dsw-font-xs-13:13px/20px var(--dsw-font-family);--dsw-font-xs-13-font-family:var(--dsw-font-family);--dsw-font-xs-13-font-weight:400;--dsw-font-xs-13-line-height:20px;--dsw-font-xs-13-font-size:13px;--dsw-font-xs-13-font-style:normal;--dsw-font-xs-strong-13:500 13px/20px var(--dsw-font-family);--dsw-font-xs-strong-13-font-family:var(--dsw-font-family);--dsw-font-xs-strong-13-font-weight:500;--dsw-font-xs-strong-13-line-height:20px;--dsw-font-xs-strong-13-font-size:13px;--dsw-font-xs-strong-13-font-style:normal;--dsw-font-xxs-12:12px/18px var(--dsw-font-family);--dsw-font-xxs-12-font-family:var(--dsw-font-family);--dsw-font-xxs-12-font-weight:400;--dsw-font-xxs-12-line-height:18px;--dsw-font-xxs-12-font-size:12px;--dsw-font-xxs-12-font-style:normal;--dsw-font-xxs-strong-12:500 12px/18px var(--dsw-font-family);--dsw-font-xxs-strong-12-font-family:var(--dsw-font-family);--dsw-font-xxs-strong-12-font-weight:500;--dsw-font-xxs-strong-12-line-height:18px;--dsw-font-xxs-strong-12-font-size:12px;--dsw-font-xxs-strong-12-font-style:normal;--dsw-font-xxxs-11:11px/14px var(--dsw-font-family);--dsw-font-xxxs-11-font-family:var(--dsw-font-family);--dsw-font-xxxs-11-font-weight:400;--dsw-font-xxxs-11-line-height:14px;--dsw-font-xxxs-11-font-size:11px;--dsw-font-xxxs-11-font-style:normal;--dsw-font-xxxs-strong-11:500 11px/14px var(--dsw-font-family);--dsw-font-xxxs-strong-11-font-family:var(--dsw-font-family);--dsw-font-xxxs-strong-11-font-weight:500;--dsw-font-xxxs-strong-11-line-height:14px;--dsw-font-xxxs-strong-11-font-size:11px;--dsw-font-xxxs-strong-11-font-style:normal}";
131
+ //#endregion
132
+ //#region \0dsh-inline-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-theme/src/styles/shiki.css.mjs
133
+ var shiki_css_default = ":root{--shiki-foreground:var(--dsw-alias-label-primary);--shiki-background:var(--dsw-alias-markdown-code-block);--shiki-token-constant:#1c7ed6;--shiki-token-string:#2f9e44;--shiki-token-comment:#868e96;--shiki-token-keyword:#d6336c;--shiki-token-parameter:#e8590c;--shiki-token-function:#6741d9;--shiki-token-string-expression:#2b8a3e;--shiki-token-punctuation:#495057;--shiki-token-link:#1971c2}body[data-ds-dark-theme]{--shiki-token-constant:#4dabf7;--shiki-token-string:#69db7c;--shiki-token-comment:#adb5bd;--shiki-token-keyword:#faa2c1;--shiki-token-parameter:#ffa94d;--shiki-token-function:#b197fc;--shiki-token-string-expression:#8ce99a;--shiki-token-punctuation:#ced4da;--shiki-token-link:#74c0fc}";
134
+ //#endregion
135
+ //#region lib/types/client/styles.js
136
+ const PLUGIN_ID = "@deepseek-ai/dsh-client-ui-theme";
137
+ const STYLES = [
138
+ ["base.css", base_css_default],
139
+ ["design-platform.css", design_platform_css_default],
140
+ ["scrollbar.css", scrollbar_css_default],
141
+ ["gradient-shadow-text.css", gradient_shadow_text_css_default],
142
+ ["shiki.css", shiki_css_default]
143
+ ];
144
+ /**
145
+ * Mount the global theme sheets for exactly the owning plugin lifetime.
146
+ * @param ctx - Owning plugin context.
147
+ */
148
+ function installThemeStyles(ctx) {
149
+ if (typeof document === "undefined") return;
150
+ for (const [name, css] of STYLES) ctx.effect(() => {
151
+ const tag = document.createElement("style");
152
+ tag.dataset.plugin = PLUGIN_ID;
153
+ tag.dataset.pluginCss = `${PLUGIN_ID}/${name}`;
154
+ tag.textContent = css;
155
+ document.head.appendChild(tag);
156
+ return () => {
157
+ tag.remove();
158
+ };
159
+ }, `ui-theme: ${name} stylesheet`);
160
+ }
161
+ //#endregion
120
162
  //#region lib/types/client/locales.js
121
163
  /** `settings.theme` namespace dictionaries (the Appearance row's copy). */
122
164
  /** Simplified Chinese dictionary (the key-set source of truth). */
@@ -1256,7 +1298,7 @@ window.__ModuleLoader__.load({
1256
1298
  /**
1257
1299
  * Required services: settings transport plus slots/locale for the Appearance
1258
1300
  * row. `remote` carries the forwarded settings invalidation that
1259
- * `bindSettingsScope` subscribes to on this context.
1301
+ * `ctx.settingsScope.bind(spec)` subscribes to on this context.
1260
1302
  */
1261
1303
  const inject = [
1262
1304
  "slots",
@@ -1272,6 +1314,7 @@ window.__ModuleLoader__.load({
1272
1314
  * @param ctx - client cordis context.
1273
1315
  */
1274
1316
  function apply(ctx) {
1317
+ installThemeStyles(ctx);
1275
1318
  const theme = new ThemeRuntime(ctx, ctx.settingsScope.bind({ namespace: THEME_SETTINGS_NAMESPACE }));
1276
1319
  ctx.provide("theme", theme);
1277
1320
  ctx.effect(() => ctx.locale.register(SETTINGS_NS, {
@@ -178,7 +178,7 @@ export declare class ThemeRuntime {
178
178
  /**
179
179
  * Required services: settings transport plus slots/locale for the Appearance
180
180
  * row. `remote` carries the forwarded settings invalidation that
181
- * `bindSettingsScope` subscribes to on this context.
181
+ * `ctx.settingsScope.bind(spec)` subscribes to on this context.
182
182
  */
183
183
  export declare const inject: string[];
184
184
  /**
@@ -0,0 +1,7 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ /**
3
+ * Mount the global theme sheets for exactly the owning plugin lifetime.
4
+ * @param ctx - Owning plugin context.
5
+ */
6
+ export declare function installThemeStyles(ctx: Context): void;
7
+ //# sourceMappingURL=styles.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-client-ui-theme",
3
3
  "description": "Theme plugin: Host bootstrap for the pre-plugin palette; DOM-free ThemeRuntime for light/dark/system state; --dsw-* token styles and Appearance settings row",
4
- "version": "0.1.0-rc.6",
4
+ "version": "0.1.0-rc.8",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -26,7 +26,6 @@
26
26
  "types": "./lib/types/client/index.d.ts",
27
27
  "default": "./lib/client.js"
28
28
  },
29
- "./styles/*": "./lib/styles/*",
30
29
  "./src/*": "./src/*",
31
30
  "./package.json": "./package.json"
32
31
  },
@@ -45,31 +44,31 @@
45
44
  },
46
45
  "license": "MIT",
47
46
  "peerDependencies": {
48
- "react": "^18.2.0",
49
- "@deepseek-ai/dsh-api-remotes": "^0.1.0-rc.6",
50
- "@deepseek-ai/dsh-client-connection": "^0.1.0-rc.6",
51
- "@deepseek-ai/dsh-client-locale": "^0.1.0-rc.6",
52
- "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
53
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.0-rc.6",
54
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.6",
55
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.6",
56
- "@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.6",
57
- "@deepseek-ai/dsh-invariants": "^0.1.0-rc.6",
58
- "@deepseek-ai/cordis": "^4.0.1"
47
+ "@deepseek-ai/cordis": "^4.0.1",
48
+ "@deepseek-ai/dsh-api-remotes": "^0.1.0-rc.8",
49
+ "@deepseek-ai/dsh-client-connection": "^0.1.0-rc.8",
50
+ "@deepseek-ai/dsh-client-locale": "^0.1.0-rc.8",
51
+ "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.8",
52
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.8",
53
+ "@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.8",
54
+ "@deepseek-ai/dsh-invariants": "^0.1.0-rc.8",
55
+ "@deepseek-ai/dsh-settings": "^0.1.0-rc.8"
59
56
  },
60
57
  "devDependencies": {
61
58
  "@types/react": "~18.3.1",
62
59
  "react": "^18.2.0",
60
+ "@deepseek-ai/dsh-api-remotes": "^0.1.0-rc.8",
61
+ "@deepseek-ai/dsh-client-locale": "^0.1.0-rc.8",
62
+ "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.8",
63
+ "@deepseek-ai/dsh-client-test-runtime": "^0.1.0-rc.8",
63
64
  "@deepseek-ai/cordis": "^4.0.1",
64
- "@deepseek-ai/dsh-api-remotes": "^0.1.0-rc.6",
65
- "@deepseek-ai/dsh-client-locale": "^0.1.0-rc.6",
66
- "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
67
- "@deepseek-ai/dsh-client-test-runtime": "^0.1.0-rc.6",
68
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.0-rc.6",
69
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.6",
70
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.6",
71
- "@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.6",
72
- "@deepseek-ai/dsh-invariants": "^0.1.0-rc.6"
65
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.1.0-rc.8",
66
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.8",
67
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.8",
68
+ "@deepseek-ai/dsh-invariants": "^0.1.0-rc.8",
69
+ "@deepseek-ai/dsh-settings": "^0.1.0-rc.8",
70
+ "@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.8",
71
+ "@deepseek-ai/dsh-client-connection": "^0.1.0-rc.8"
73
72
  },
74
73
  "files": [
75
74
  "lib/index.js",
@@ -80,7 +79,6 @@
80
79
  ],
81
80
  "dependencies": {
82
81
  "clsx": "^2.0.0",
83
- "@deepseek-ai/dsh-settings": "^0.1.0-rc.6",
84
82
  "@deepseek-ai/schemastery": "^3.18.1"
85
83
  },
86
84
  "scripts": {
@@ -1,15 +0,0 @@
1
- /* Base variables referenced by the token sheets and component CSS but defined
2
- * upstream (deepsuite theme/global.css) — supplied here so the composite
3
- * --dsw-font-* variables resolve and motion rides the upstream curve. Code
4
- * font stack deliberately omits a bare `monospace` tail (Windows CJK falls
5
- * back to SimSun otherwise). */
6
- :root {
7
- --dsw-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC',
8
- 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;
9
- --ds-font-family-code: 'SF Mono', 'JetBrains Mono', 'Fira Code', Consolas,
10
- 'Liberation Mono', Menlo, Courier, 'PingFang SC', 'Microsoft YaHei';
11
- --ds-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
12
- --ds-transition-duration: 0.2s;
13
- --ds-transition-duration-fast: 0.1s;
14
- --ds-transition-duration-slow: 0.3s;
15
- }
@@ -1,338 +0,0 @@
1
- /* Figma font-weight 510 (an SF Pro variable-font weight) always renders as
2
- font-weight: 500 in this UI — non-variable webfonts snap intermediate
3
- weights unpredictably across platforms. */
4
- body {
5
- --dsw-static-amber-100: rgb(254, 245, 231);
6
- --dsw-static-amber-400: rgb(247, 173, 49);
7
- --dsw-static-amber-500: rgb(245, 158, 11);
8
- --dsw-static-amber-600: rgb(221, 134, 41);
9
- --dsw-static-amber-900: rgb(39, 36, 31);
10
- --dsw-static-blue-100: rgb(219, 234, 254);
11
- --dsw-static-blue-300: rgb(147, 197, 253);
12
- --dsw-static-blue-400: rgb(96, 165, 250);
13
- --dsw-static-blue-450: rgb(77, 147, 248);
14
- --dsw-static-blue-500: rgb(59, 130, 246);
15
- --dsw-static-blue-50: rgb(239, 246, 255);
16
- --dsw-static-blue-50p: rgb(234, 243, 255);
17
- --dsw-static-blue-600: rgb(37, 99, 235);
18
- --dsw-static-blue-75: rgb(229, 240, 255);
19
- --dsw-static-blue-800: rgb(30, 64, 175);
20
- --dsw-static-blue-900: rgb(14, 48, 116);
21
- --dsw-static-blue-950: rgb(23, 37, 84);
22
- --dsw-static-deepseek-100: rgb(228, 237, 253);
23
- --dsw-static-deepseek-200: rgb(211, 226, 255);
24
- --dsw-static-deepseek-300: rgb(183, 200, 254);
25
- --dsw-static-deepseek-400: rgb(103, 158, 254);
26
- --dsw-static-deepseek-450: rgb(86, 134, 254);
27
- --dsw-static-deepseek-500: rgb(65, 118, 230);
28
- --dsw-static-deepseek-50: rgb(237, 243, 254);
29
- --dsw-static-deepseek-600: rgb(72, 104, 178);
30
- --dsw-static-deepseek-700-delete: rgb(47, 76, 143);
31
- --dsw-static-deepseek-800: rgb(52, 65, 91);
32
- --dsw-static-deepseek-900: rgb(40, 49, 66);
33
- --dsw-static-green-100: rgb(230, 250, 237);
34
- --dsw-static-green-400: rgb(78, 209, 126);
35
- --dsw-static-green-500: rgb(34, 197, 94);
36
- --dsw-static-green-900: rgb(35, 60, 44);
37
- --dsw-static-neutral-00: rgb(255, 255, 255);
38
- --dsw-static-neutral-1000: rgb(0, 0, 0);
39
- --dsw-static-neutral-100: rgb(245, 245, 245);
40
- --dsw-static-neutral-150: rgb(237, 237, 237);
41
- --dsw-static-neutral-200: rgb(229, 229, 229);
42
- --dsw-static-neutral-250: rgb(220, 220, 220);
43
- --dsw-static-neutral-300: rgb(212, 212, 212);
44
- --dsw-static-neutral-400: rgb(162, 164, 166);
45
- --dsw-static-neutral-500: rgb(127, 130, 135);
46
- --dsw-static-neutral-50: rgb(250, 250, 250);
47
- --dsw-static-neutral-550: rgb(101, 103, 107);
48
- --dsw-static-neutral-600: rgb(84, 85, 87);
49
- --dsw-static-neutral-700: rgb(60, 60, 61);
50
- --dsw-static-neutral-800: rgb(41, 41, 41);
51
- --dsw-static-neutral-850: rgb(33, 33, 35);
52
- --dsw-static-neutral-900: rgb(15, 15, 15);
53
- --dsw-static-neutral-bluish-00: rgb(255, 255, 255);
54
- --dsw-static-neutral-bluish-1000: rgb(15, 17, 21);
55
- --dsw-static-neutral-bluish-100: rgb(235, 238, 242);
56
- --dsw-static-neutral-bluish-150: rgb(233, 236, 242);
57
- --dsw-static-neutral-bluish-200: rgb(225, 229, 238);
58
- --dsw-static-neutral-bluish-300: rgb(207, 211, 214);
59
- --dsw-static-neutral-bluish-400: rgb(173, 178, 184);
60
- --dsw-static-neutral-bluish-500: rgb(151, 157, 166);
61
- --dsw-static-neutral-bluish-50: rgb(249, 250, 251);
62
- --dsw-static-neutral-bluish-600: rgb(129, 133, 140);
63
- --dsw-static-neutral-bluish-60: rgb(245, 246, 247);
64
- --dsw-static-neutral-bluish-700: rgb(97, 102, 107);
65
- --dsw-static-neutral-bluish-750: rgb(67, 69, 74);
66
- --dsw-static-neutral-bluish-75: rgb(241, 243, 245);
67
- --dsw-static-neutral-bluish-800: rgb(53, 54, 56);
68
- --dsw-static-neutral-bluish-850: rgb(44, 44, 46);
69
- --dsw-static-neutral-bluish-875: rgb(35, 35, 36);
70
- --dsw-static-neutral-bluish-900: rgb(27, 27, 28);
71
- --dsw-static-neutral-bluish-950: rgb(21, 21, 23);
72
- --dsw-static-red-100: rgb(254, 226, 226);
73
- --dsw-static-red-400: rgb(242, 90, 90);
74
- --dsw-static-red-500: rgb(239, 68, 68);
75
- --dsw-static-red-50: rgb(254, 242, 242);
76
- --dsw-static-red-600: rgb(236, 19, 19);
77
- --dsw-static-red-900: rgb(87, 12, 12);
78
- }
79
-
80
- body[data-ds-dark-theme] {
81
- --dsw-static-amber-100: rgb(254, 245, 231);
82
- --dsw-static-amber-400: rgb(247, 173, 49);
83
- --dsw-static-amber-500: rgb(245, 158, 11);
84
- --dsw-static-amber-600: rgb(221, 134, 41);
85
- --dsw-static-amber-900: rgb(39, 36, 31);
86
- --dsw-static-blue-100: rgb(219, 234, 254);
87
- --dsw-static-blue-300: rgb(147, 197, 253);
88
- --dsw-static-blue-400: rgb(96, 165, 250);
89
- --dsw-static-blue-450: rgb(77, 147, 248);
90
- --dsw-static-blue-500: rgb(59, 130, 246);
91
- --dsw-static-blue-50: rgb(239, 246, 255);
92
- --dsw-static-blue-50p: rgb(234, 243, 255);
93
- --dsw-static-blue-600: rgb(37, 99, 235);
94
- --dsw-static-blue-75: rgb(229, 240, 255);
95
- --dsw-static-blue-800: rgb(30, 64, 175);
96
- --dsw-static-blue-900: rgb(14, 48, 116);
97
- --dsw-static-blue-950: rgb(23, 37, 84);
98
- --dsw-static-deepseek-100: rgb(228, 237, 253);
99
- --dsw-static-deepseek-200: rgb(211, 226, 255);
100
- --dsw-static-deepseek-300: rgb(183, 200, 254);
101
- --dsw-static-deepseek-400: rgb(103, 158, 254);
102
- --dsw-static-deepseek-450: rgb(86, 134, 254);
103
- --dsw-static-deepseek-500: rgb(65, 118, 230);
104
- --dsw-static-deepseek-50: rgb(237, 243, 254);
105
- --dsw-static-deepseek-600: rgb(72, 104, 178);
106
- --dsw-static-deepseek-700-delete: rgb(47, 76, 143);
107
- --dsw-static-deepseek-800: rgb(52, 65, 91);
108
- --dsw-static-deepseek-900: rgb(40, 49, 66);
109
- --dsw-static-green-100: rgb(230, 250, 237);
110
- --dsw-static-green-400: rgb(78, 209, 126);
111
- --dsw-static-green-500: rgb(34, 197, 94);
112
- --dsw-static-green-900: rgb(35, 60, 44);
113
- --dsw-static-neutral-00: rgb(255, 255, 255);
114
- --dsw-static-neutral-1000: rgb(0, 0, 0);
115
- --dsw-static-neutral-100: rgb(245, 245, 245);
116
- --dsw-static-neutral-150: rgb(237, 237, 237);
117
- --dsw-static-neutral-200: rgb(229, 229, 229);
118
- --dsw-static-neutral-250: rgb(220, 220, 220);
119
- --dsw-static-neutral-300: rgb(212, 212, 212);
120
- --dsw-static-neutral-400: rgb(162, 164, 166);
121
- --dsw-static-neutral-500: rgb(127, 130, 135);
122
- --dsw-static-neutral-50: rgb(250, 250, 250);
123
- --dsw-static-neutral-550: rgb(101, 103, 107);
124
- --dsw-static-neutral-600: rgb(84, 85, 87);
125
- --dsw-static-neutral-700: rgb(60, 60, 61);
126
- --dsw-static-neutral-800: rgb(41, 41, 41);
127
- --dsw-static-neutral-850: rgb(33, 33, 35);
128
- --dsw-static-neutral-900: rgb(15, 15, 15);
129
- --dsw-static-neutral-bluish-00: rgb(255, 255, 255);
130
- --dsw-static-neutral-bluish-1000: rgb(15, 17, 21);
131
- --dsw-static-neutral-bluish-100: rgb(235, 238, 242);
132
- --dsw-static-neutral-bluish-150: rgb(233, 236, 242);
133
- --dsw-static-neutral-bluish-200: rgb(225, 229, 238);
134
- --dsw-static-neutral-bluish-300: rgb(207, 211, 214);
135
- --dsw-static-neutral-bluish-400: rgb(173, 178, 184);
136
- --dsw-static-neutral-bluish-500: rgb(151, 157, 166);
137
- --dsw-static-neutral-bluish-50: rgb(249, 250, 251);
138
- --dsw-static-neutral-bluish-600: rgb(129, 133, 140);
139
- --dsw-static-neutral-bluish-60: rgb(249, 250, 251);
140
- --dsw-static-neutral-bluish-700: rgb(97, 102, 107);
141
- --dsw-static-neutral-bluish-750: rgb(67, 69, 74);
142
- --dsw-static-neutral-bluish-75: rgb(241, 243, 245);
143
- --dsw-static-neutral-bluish-800: rgb(53, 54, 56);
144
- --dsw-static-neutral-bluish-850: rgb(44, 44, 46);
145
- --dsw-static-neutral-bluish-875: rgb(35, 35, 36);
146
- --dsw-static-neutral-bluish-900: rgb(27, 27, 28);
147
- --dsw-static-neutral-bluish-950: rgb(21, 21, 23);
148
- --dsw-static-red-100: rgb(254, 226, 226);
149
- --dsw-static-red-400: rgb(242, 90, 90);
150
- --dsw-static-red-500: rgb(239, 68, 68);
151
- --dsw-static-red-50: rgb(254, 242, 242);
152
- --dsw-static-red-600: rgb(236, 19, 19);
153
- --dsw-static-red-900: rgb(87, 12, 12);
154
- }
155
-
156
- body {
157
- --dsw-alias-bg-base: var(--dsw-static-neutral-bluish-00);
158
- --dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-00);
159
- --dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-00);
160
- --dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-00);
161
- --dsw-alias-bg-mask-1: rgba(0, 0, 0, 0.24);
162
- --dsw-alias-bg-mask-2: rgba(0, 0, 0, 0.12);
163
- --dsw-alias-bg-mask-3: rgba(0, 0, 0, 0.48);
164
- --dsw-alias-bg-mask-photo: rgba(0, 0, 0, 0.88);
165
- --dsw-alias-bg-mask-drop: rgba(255, 255, 255, 0.7);
166
- --dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-60);
167
- --dsw-alias-bg-multi-select: var(--dsw-static-neutral-bluish-60);
168
- --dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-150);
169
- --dsw-alias-bg-skeleton: rgba(0, 0, 0, 0.04);
170
- --dsw-alias-border-inverted2: rgba(0, 0, 0, 0);
171
- --dsw-alias-border-inverted: rgba(0, 0, 0, 0);
172
- --dsw-alias-border-l1: rgba(0, 0, 0, 0.04);
173
- --dsw-alias-border-l2-darkmode-thin: rgba(0, 0, 0, 0.1);
174
- --dsw-alias-border-l2: rgba(0, 0, 0, 0.1);
175
- --dsw-alias-border-l3: rgba(0, 0, 0, 0.12);
176
- --dsw-alias-border-l4: rgba(0, 0, 0, 0.16);
177
- --dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-1000);
178
- --dsw-alias-brand-primary-new-colorprimary-new-color: rgb(65, 118, 230);
179
- --dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-1000);
180
- --dsw-alias-brand-text: var(--dsw-static-neutral-bluish-1000);
181
- --dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-700);
182
- --dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-00);
183
- --dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-00);
184
- --dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-75);
185
- --dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-500);
186
- --dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-100);
187
- --dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-150);
188
- --dsw-alias-button-info-fill: var(--dsw-static-deepseek-500);
189
- --dsw-alias-button-info-hover: var(--dsw-static-deepseek-400);
190
- --dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-100);
191
- --dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);
192
- --dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-750);
193
- --dsw-alias-button-tool-bar-fill-invisible: rgba(31, 31, 31, 0.36);
194
- --dsw-alias-button-tool-bar-fill: rgba(84, 85, 87, 0.5);
195
- --dsw-alias-button-tool-bar-hover: rgba(84, 85, 87, 0.6);
196
- --dsw-alias-interactive-bg-active: rgba(38, 49, 72, 0.1);
197
- --dsw-alias-interactive-bg-hover-accent: rgba(38, 49, 72, 0.14);
198
- --dsw-alias-interactive-bg-hover-danger: rgba(236, 19, 19, 0.05);
199
- --dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-75);
200
- --dsw-alias-interactive-bg-hover: rgba(38, 49, 72, 0.06);
201
- --dsw-alias-label-caption: var(--dsw-static-neutral-bluish-400);
202
- --dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-200);
203
- --dsw-alias-label-primary-bluish: var(--dsw-static-blue-900);
204
- --dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-950);
205
- --dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-00);
206
- --dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-00);
207
- --dsw-alias-label-primary: var(--dsw-static-neutral-bluish-1000);
208
- --dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-700);
209
- --dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-600);
210
- --dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-100);
211
- --dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-50);
212
- --dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-50);
213
- --dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-00);
214
- --dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-75);
215
- --dsw-alias-markdown-inline-code: var(--dsw-static-neutral-bluish-100);
216
- --dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-60);
217
- --dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-75);
218
- --dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-200);
219
- --dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-200);
220
- --dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-300);
221
- --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-300);
222
- --dsw-alias-state-business-primary: var(--dsw-static-deepseek-500);
223
- --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-100);
224
- --dsw-alias-state-error-primary: var(--dsw-static-red-600);
225
- --dsw-alias-state-error-secondary: var(--dsw-static-red-400);
226
- --dsw-alias-state-success-primary: var(--dsw-static-green-500);
227
- --dsw-alias-state-success-secondary: var(--dsw-static-green-400);
228
- --dsw-alias-state-success-tertiary: var(--dsw-static-green-100);
229
- --dsw-alias-state-warn-label: var(--dsw-static-amber-600);
230
- --dsw-alias-state-warn-primary: var(--dsw-static-amber-500);
231
- --dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);
232
- --dsw-alias-state-warn-tertiary: var(--dsw-static-amber-100);
233
- --dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-800);
234
- --dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-850);
235
- --dsw-specific-bubble-highlight: var(--dsw-static-deepseek-200);
236
- --dsw-specific-bubble: var(--dsw-static-deepseek-50);
237
- --dsw-specific-input-major: var(--dsw-static-neutral-bluish-00);
238
- --dsw-specific-login-input: var(--dsw-static-neutral-bluish-50);
239
- --dsw-specific-menu: var(--dsw-alias-bg-layer-3);
240
- --dsw-specific-selector: var(--dsw-static-neutral-bluish-60);
241
- --dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-50);
242
- --dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-deepseek-100);
243
- --dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-100);
244
- --dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-75);
245
- --dsw-specific-tip: var(--dsw-static-neutral-bluish-60);
246
- }
247
-
248
- body[data-ds-dark-theme] {
249
- --dsw-alias-bg-base: var(--dsw-static-neutral-bluish-950);
250
- --dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-875);
251
- --dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-850);
252
- --dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-800);
253
- --dsw-alias-bg-mask-1: rgba(0, 0, 0, 0.5);
254
- --dsw-alias-bg-mask-2: rgba(0, 0, 0, 0.2);
255
- --dsw-alias-bg-mask-3: rgba(0, 0, 0, 0.48);
256
- --dsw-alias-bg-mask-photo: rgba(0, 0, 0, 0.88);
257
- --dsw-alias-bg-mask-drop: rgba(39, 39, 48, 0.7);
258
- --dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-800);
259
- --dsw-alias-bg-multi-select: var(--dsw-static-neutral-850);
260
- --dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-700);
261
- --dsw-alias-bg-skeleton: rgba(255, 255, 255, 0.08);
262
- --dsw-alias-border-inverted2: rgba(255, 255, 255, 0.08);
263
- --dsw-alias-border-inverted: rgba(255, 255, 255, 0.06);
264
- --dsw-alias-border-l1: rgba(255, 255, 255, 0.06);
265
- --dsw-alias-border-l2-darkmode-thin: rgba(255, 255, 255, 0.06);
266
- --dsw-alias-border-l2: rgba(255, 255, 255, 0.12);
267
- --dsw-alias-border-l3: rgba(255, 255, 255, 0.16);
268
- --dsw-alias-border-l4: rgba(255, 255, 255, 0.2);
269
- --dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-50);
270
- --dsw-alias-brand-primary-new-colorprimary-new-color: var(--dsw-static-deepseek-450);
271
- --dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-50);
272
- --dsw-alias-brand-text: var(--dsw-static-neutral-bluish-50);
273
- --dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-50);
274
- --dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-750);
275
- --dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-850);
276
- --dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-800);
277
- --dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-600);
278
- --dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-750);
279
- --dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-700);
280
- --dsw-alias-button-info-fill: var(--dsw-static-deepseek-400);
281
- --dsw-alias-button-info-hover: var(--dsw-static-deepseek-500);
282
- --dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-750);
283
- --dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);
284
- --dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-100);
285
- --dsw-alias-button-tool-bar-fill-invisible: rgba(31, 31, 31, 0.36);
286
- --dsw-alias-button-tool-bar-fill: rgba(84, 85, 87, 0.5);
287
- --dsw-alias-button-tool-bar-hover: rgba(84, 85, 87, 0.6);
288
- --dsw-alias-interactive-bg-active: rgba(255, 255, 255, 0.14);
289
- --dsw-alias-interactive-bg-hover-accent: rgba(255, 255, 255, 0.24);
290
- --dsw-alias-interactive-bg-hover-danger: rgba(242, 90, 90, 0.15);
291
- --dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-800);
292
- --dsw-alias-interactive-bg-hover: rgba(255, 255, 255, 0.08);
293
- --dsw-alias-label-caption: var(--dsw-static-neutral-bluish-600);
294
- --dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-750);
295
- --dsw-alias-label-primary-bluish: var(--dsw-static-neutral-bluish-50);
296
- --dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-100);
297
- --dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-1000);
298
- --dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-800);
299
- --dsw-alias-label-primary: var(--dsw-static-neutral-bluish-50);
300
- --dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-300);
301
- --dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-400);
302
- --dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-800);
303
- --dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-850);
304
- --dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-900);
305
- --dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-800);
306
- --dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-900);
307
- --dsw-alias-markdown-inline-code: var(--dsw-static-neutral-bluish-850);
308
- --dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-850);
309
- --dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-850);
310
- --dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-700);
311
- --dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-600);
312
- --dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-600);
313
- --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-550);
314
- --dsw-alias-state-business-primary: var(--dsw-static-deepseek-400);
315
- --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-800);
316
- --dsw-alias-state-error-primary: var(--dsw-static-red-400);
317
- --dsw-alias-state-error-secondary: var(--dsw-static-red-400);
318
- --dsw-alias-state-success-primary: var(--dsw-static-green-500);
319
- --dsw-alias-state-success-secondary: var(--dsw-static-green-400);
320
- --dsw-alias-state-success-tertiary: var(--dsw-static-green-900);
321
- --dsw-alias-state-warn-label: var(--dsw-static-amber-600);
322
- --dsw-alias-state-warn-primary: var(--dsw-static-amber-500);
323
- --dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);
324
- --dsw-alias-state-warn-tertiary: var(--dsw-static-amber-900);
325
- --dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-750);
326
- --dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-750);
327
- --dsw-specific-bubble-highlight: var(--dsw-static-neutral-bluish-750);
328
- --dsw-specific-bubble: var(--dsw-static-neutral-bluish-850);
329
- --dsw-specific-input-major: var(--dsw-static-neutral-bluish-850);
330
- --dsw-specific-login-input: var(--dsw-static-neutral-bluish-900);
331
- --dsw-specific-menu: var(--dsw-alias-bg-layer-3);
332
- --dsw-specific-selector: var(--dsw-static-neutral-bluish-800);
333
- --dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-900);
334
- --dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-neutral-bluish-800);
335
- --dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-750);
336
- --dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-850);
337
- --dsw-specific-tip: var(--dsw-static-neutral-bluish-800);
338
- }
@@ -1,232 +0,0 @@
1
- body {
2
- --dsw-linear-gradient-think: linear-gradient(180deg, #fff 20.19%, rgba(255, 255, 255, 0) 100%);
3
- --dsw-linear-think-select: linear-gradient(180deg, #f5f6f7 20.19%, rgba(245, 246, 247, 0) 100%);
4
- /* 阴影 */
5
- --dsw-shadow-lv1: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
6
- --dsw-shadow-lv1-blur: 0 4px 12px 0 rgba(0, 0, 0, 0.02);
7
- --dsw-shadow-lv2: 0 4px 12px 0 rgba(0, 0, 0, 0.02), 0 2px 8px 0 rgba(0, 0, 0, 0.04);
8
- --dsw-shadow-lv3:
9
- 0 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 4px 0 rgba(0, 0, 0, 0.02), 0 12px 32px 0 rgba(0, 0, 0, 0.08);
10
- /* blur filter */
11
- --dsw-mask-blur: blur(2px);
12
- }
13
-
14
- body[data-ds-dark-theme] {
15
- --dsw-linear-gradient-think: linear-gradient(180deg, #151517 20.19%, rgba(21, 21, 23, 0) 100%);
16
- --dsw-linear-think-select: linear-gradient(180deg, #232325 20.19%, rgba(35, 35, 37, 0) 100%);
17
- }
18
-
19
- /* ---------- 字体 ---------- */
20
- /* 由 @deepseek-figma-plugin/custom-variable-name 插件导出 */
21
- body {
22
- --dsw-font-markdown-h1: 700 24px/34px var(--dsw-font-family);
23
- --dsw-font-markdown-h1-font-family: var(--dsw-font-family);
24
- --dsw-font-markdown-h1-font-weight: 700;
25
- --dsw-font-markdown-h1-line-height: 34px;
26
- --dsw-font-markdown-h1-font-size: 24px;
27
- --dsw-font-markdown-h1-font-style: normal;
28
-
29
- --dsw-font-markdown-h2: 700 22px/32px var(--dsw-font-family);
30
- --dsw-font-markdown-h2-font-family: var(--dsw-font-family);
31
- --dsw-font-markdown-h2-font-weight: 700;
32
- --dsw-font-markdown-h2-line-height: 32px;
33
- --dsw-font-markdown-h2-font-size: 22px;
34
- --dsw-font-markdown-h2-font-style: normal;
35
-
36
- --dsw-font-markdown-h3: 700 20px/30px var(--dsw-font-family);
37
- --dsw-font-markdown-h3-font-family: var(--dsw-font-family);
38
- --dsw-font-markdown-h3-font-weight: 700;
39
- --dsw-font-markdown-h3-line-height: 30px;
40
- --dsw-font-markdown-h3-font-size: 20px;
41
- --dsw-font-markdown-h3-font-style: normal;
42
-
43
- --dsw-font-markdown-h4: 600 16px/28px var(--dsw-font-family);
44
- --dsw-font-markdown-h4-font-family: var(--dsw-font-family);
45
- --dsw-font-markdown-h4-font-weight: 600;
46
- --dsw-font-markdown-h4-line-height: 28px;
47
- --dsw-font-markdown-h4-font-size: 16px;
48
- --dsw-font-markdown-h4-font-style: normal;
49
-
50
- --dsw-font-markdown-base: 16px/28px var(--dsw-font-family);
51
- --dsw-font-markdown-base-font-family: var(--dsw-font-family);
52
- --dsw-font-markdown-base-font-weight: 400;
53
- --dsw-font-markdown-base-line-height: 28px;
54
- --dsw-font-markdown-base-font-size: 16px;
55
- --dsw-font-markdown-base-font-style: normal;
56
-
57
- --dsw-font-markdown-base-strong: 600 16px/28px var(--dsw-font-family);
58
- --dsw-font-markdown-base-strong-font-family: var(--dsw-font-family);
59
- --dsw-font-markdown-base-strong-font-weight: 600;
60
- --dsw-font-markdown-base-strong-line-height: 28px;
61
- --dsw-font-markdown-base-strong-font-size: 16px;
62
- --dsw-font-markdown-base-strong-font-style: normal;
63
-
64
- --dsw-font-markdown-base-italic: italic 16px/28px var(--dsw-font-family);
65
- --dsw-font-markdown-base-italic-font-family: var(--dsw-font-family);
66
- --dsw-font-markdown-base-italic-font-weight: 400;
67
- --dsw-font-markdown-base-italic-line-height: 28px;
68
- --dsw-font-markdown-base-italic-font-size: 16px;
69
- --dsw-font-markdown-base-italic-font-style: italic;
70
-
71
- --dsw-font-markdown-base-strong-italic: italic 600 16px/28px var(--dsw-font-family);
72
- --dsw-font-markdown-base-strong-italic-font-family: var(--dsw-font-family);
73
- --dsw-font-markdown-base-strong-italic-font-weight: 600;
74
- --dsw-font-markdown-base-strong-italic-line-height: 28px;
75
- --dsw-font-markdown-base-strong-italic-font-size: 16px;
76
- --dsw-font-markdown-base-strong-italic-font-style: italic;
77
-
78
- --dsw-font-markdown-table: 15px/25px var(--dsw-font-family);
79
- --dsw-font-markdown-table-font-family: var(--dsw-font-family);
80
- --dsw-font-markdown-table-font-weight: 400;
81
- --dsw-font-markdown-table-line-height: 25px;
82
- --dsw-font-markdown-table-font-size: 15px;
83
- --dsw-font-markdown-table-font-style: normal;
84
-
85
- --dsw-font-markdown-table-head: 500 15px/25px var(--dsw-font-family);
86
- --dsw-font-markdown-table-head-font-family: var(--dsw-font-family);
87
- --dsw-font-markdown-table-head-font-weight: 500;
88
- --dsw-font-markdown-table-head-line-height: 25px;
89
- --dsw-font-markdown-table-head-font-size: 15px;
90
- --dsw-font-markdown-table-head-font-style: normal;
91
-
92
- --dsw-font-markdown-small: 14px/24px var(--dsw-font-family);
93
- --dsw-font-markdown-small-font-family: var(--dsw-font-family);
94
- --dsw-font-markdown-small-font-weight: 400;
95
- --dsw-font-markdown-small-line-height: 24px;
96
- --dsw-font-markdown-small-font-size: 14px;
97
- --dsw-font-markdown-small-font-style: normal;
98
-
99
- --dsw-font-markdown-small-strong: 600 14px/24px var(--dsw-font-family);
100
- --dsw-font-markdown-small-strong-font-family: var(--dsw-font-family);
101
- --dsw-font-markdown-small-strong-font-weight: 600;
102
- --dsw-font-markdown-small-strong-line-height: 24px;
103
- --dsw-font-markdown-small-strong-font-size: 14px;
104
- --dsw-font-markdown-small-strong-font-style: normal;
105
-
106
- --dsw-font-markdown-small-italic: italic 14px/24px var(--dsw-font-family);
107
- --dsw-font-markdown-small-italic-font-family: var(--dsw-font-family);
108
- --dsw-font-markdown-small-italic-font-weight: 400;
109
- --dsw-font-markdown-small-italic-line-height: 24px;
110
- --dsw-font-markdown-small-italic-font-size: 14px;
111
- --dsw-font-markdown-small-italic-font-style: italic;
112
-
113
- --dsw-font-markdown-small-strong-italic: italic 600 14px/24px var(--dsw-font-family);
114
- --dsw-font-markdown-small-strong-italic-font-family: var(--dsw-font-family);
115
- --dsw-font-markdown-small-strong-italic-font-weight: 600;
116
- --dsw-font-markdown-small-strong-italic-line-height: 24px;
117
- --dsw-font-markdown-small-strong-italic-font-size: 14px;
118
- --dsw-font-markdown-small-strong-italic-font-style: italic;
119
-
120
- --dsw-font-markdown-code: 14px/22px var(--ds-font-family-code);
121
- --dsw-font-markdown-code-font-family: var(--ds-font-family-code);
122
- --dsw-font-markdown-code-font-weight: 400;
123
- --dsw-font-markdown-code-line-height: 22px;
124
- --dsw-font-markdown-code-font-size: 14px;
125
- --dsw-font-markdown-code-font-style: normal;
126
-
127
- --dsw-font-markdown-code-block: 13px/22px var(--ds-font-family-code);
128
- --dsw-font-markdown-code-block-font-family: var(--ds-font-family-code);
129
- --dsw-font-markdown-code-block-font-weight: 400;
130
- --dsw-font-markdown-code-block-line-height: 22px;
131
- --dsw-font-markdown-code-block-font-size: 13px;
132
- --dsw-font-markdown-code-block-font-style: normal;
133
-
134
- /* 手工补充(非插件导出):tool row 展开卡片内的小号 code 字体。 */
135
- --dsw-font-markdown-code-block-small: 12px/18px var(--ds-font-family-code);
136
- --dsw-font-markdown-code-block-small-font-family: var(--ds-font-family-code);
137
- --dsw-font-markdown-code-block-small-font-weight: 400;
138
- --dsw-font-markdown-code-block-small-line-height: 18px;
139
- --dsw-font-markdown-code-block-small-font-size: 12px;
140
- --dsw-font-markdown-code-block-small-font-style: normal;
141
-
142
- --dsw-font-xl-24: 600 24px/32px var(--dsw-font-family);
143
- --dsw-font-xl-24-font-family: var(--dsw-font-family);
144
- --dsw-font-xl-24-font-weight: 600;
145
- --dsw-font-xl-24-line-height: 32px;
146
- --dsw-font-xl-24-font-size: 24px;
147
- --dsw-font-xl-24-font-style: normal;
148
-
149
- --dsw-font-l-20: 500 20px/28px var(--dsw-font-family);
150
- --dsw-font-l-20-font-family: var(--dsw-font-family);
151
- --dsw-font-l-20-font-weight: 500;
152
- --dsw-font-l-20-line-height: 28px;
153
- --dsw-font-l-20-font-size: 20px;
154
- --dsw-font-l-20-font-style: normal;
155
-
156
- --dsw-font-m-18: 500 16px/28px var(--dsw-font-family);
157
- --dsw-font-m-18-font-family: var(--dsw-font-family);
158
- --dsw-font-m-18-font-weight: 500;
159
- --dsw-font-m-18-line-height: 28px;
160
- --dsw-font-m-18-font-size: 16px;
161
- --dsw-font-m-18-font-style: normal;
162
-
163
- --dsw-font-base-16: 16px/24px var(--dsw-font-family);
164
- --dsw-font-base-16-font-family: var(--dsw-font-family);
165
- --dsw-font-base-16-font-weight: 400;
166
- --dsw-font-base-16-line-height: 24px;
167
- --dsw-font-base-16-font-size: 16px;
168
- --dsw-font-base-16-font-style: normal;
169
-
170
- --dsw-font-base-strong-16: 500 16px/24px var(--dsw-font-family);
171
- --dsw-font-base-strong-16-font-family: var(--dsw-font-family);
172
- --dsw-font-base-strong-16-font-weight: 500;
173
- --dsw-font-base-strong-16-line-height: 24px;
174
- --dsw-font-base-strong-16-font-size: 16px;
175
- --dsw-font-base-strong-16-font-style: normal;
176
-
177
- --dsw-font-s-14: 14px/22px var(--dsw-font-family);
178
- --dsw-font-s-14-font-family: var(--dsw-font-family);
179
- --dsw-font-s-14-font-weight: 400;
180
- --dsw-font-s-14-line-height: 22px;
181
- --dsw-font-s-14-font-size: 14px;
182
- --dsw-font-s-14-font-style: normal;
183
-
184
- --dsw-font-s-strong-14: 500 14px/22px var(--dsw-font-family);
185
- --dsw-font-s-strong-14-font-family: var(--dsw-font-family);
186
- --dsw-font-s-strong-14-font-weight: 500;
187
- --dsw-font-s-strong-14-line-height: 22px;
188
- --dsw-font-s-strong-14-font-size: 14px;
189
- --dsw-font-s-strong-14-font-style: normal;
190
-
191
- --dsw-font-xs-13: 13px/20px var(--dsw-font-family);
192
- --dsw-font-xs-13-font-family: var(--dsw-font-family);
193
- --dsw-font-xs-13-font-weight: 400;
194
- --dsw-font-xs-13-line-height: 20px;
195
- --dsw-font-xs-13-font-size: 13px;
196
- --dsw-font-xs-13-font-style: normal;
197
-
198
- --dsw-font-xs-strong-13: 500 13px/20px var(--dsw-font-family);
199
- --dsw-font-xs-strong-13-font-family: var(--dsw-font-family);
200
- --dsw-font-xs-strong-13-font-weight: 500;
201
- --dsw-font-xs-strong-13-line-height: 20px;
202
- --dsw-font-xs-strong-13-font-size: 13px;
203
- --dsw-font-xs-strong-13-font-style: normal;
204
-
205
- --dsw-font-xxs-12: 12px/18px var(--dsw-font-family);
206
- --dsw-font-xxs-12-font-family: var(--dsw-font-family);
207
- --dsw-font-xxs-12-font-weight: 400;
208
- --dsw-font-xxs-12-line-height: 18px;
209
- --dsw-font-xxs-12-font-size: 12px;
210
- --dsw-font-xxs-12-font-style: normal;
211
-
212
- --dsw-font-xxs-strong-12: 500 12px/18px var(--dsw-font-family);
213
- --dsw-font-xxs-strong-12-font-family: var(--dsw-font-family);
214
- --dsw-font-xxs-strong-12-font-weight: 500;
215
- --dsw-font-xxs-strong-12-line-height: 18px;
216
- --dsw-font-xxs-strong-12-font-size: 12px;
217
- --dsw-font-xxs-strong-12-font-style: normal;
218
-
219
- --dsw-font-xxxs-11: 11px/14px var(--dsw-font-family);
220
- --dsw-font-xxxs-11-font-family: var(--dsw-font-family);
221
- --dsw-font-xxxs-11-font-weight: 400;
222
- --dsw-font-xxxs-11-line-height: 14px;
223
- --dsw-font-xxxs-11-font-size: 11px;
224
- --dsw-font-xxxs-11-font-style: normal;
225
-
226
- --dsw-font-xxxs-strong-11: 500 11px/14px var(--dsw-font-family);
227
- --dsw-font-xxxs-strong-11-font-family: var(--dsw-font-family);
228
- --dsw-font-xxxs-strong-11-font-weight: 500;
229
- --dsw-font-xxxs-strong-11-line-height: 14px;
230
- --dsw-font-xxxs-strong-11-font-size: 11px;
231
- --dsw-font-xxxs-strong-11-font-style: normal;
232
- }
@@ -1,90 +0,0 @@
1
- /* Scrollbar skin: the sole consumer of the four --dsw-alias-scrollbar-*
2
- * tokens. Without it every scrolling region renders the UA scrollbar, which
3
- * ignores the theme — a light native bar over the dark palette.
4
- *
5
- * The rules sit on `body`, not `html`: design-platform.css declares the
6
- * --dsw-alias-* tokens on `body` (and the dark overrides on
7
- * `body[data-ds-dark-theme]`), and custom properties only inherit downward,
8
- * so an `html` rule resolves them to the guaranteed-invalid value and
9
- * `scrollbar-color` falls back to `auto`.
10
- *
11
- * Surfaces pick their elevation by rebinding --dsh-scrollbar-thumb{,-hover}:
12
- * the l1 pair here is the base-surface default, and an elevated surface
13
- * (menu, popover, dialog) rebinds to the l2 pair on its own container. Both
14
- * rendering paths below read the indirection, so one rebind reaches whichever
15
- * path the engine took. */
16
-
17
- body {
18
- --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l1);
19
- --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l1);
20
- /* The WebKit bar's layout width, mirrored by the ::-webkit-scrollbar rule
21
- below. A surface that must align itself beside a space-consuming bar
22
- (ConversationRoot's overlay composer seat) reads this instead of
23
- hardcoding the number. */
24
- --dsh-scrollbar-width: 8px;
25
- }
26
-
27
- /* The two paths are mutually exclusive, and the gate is load-bearing rather
28
- than defensive. A non-`auto` `scrollbar-width` or `scrollbar-color` makes
29
- Chromium and Safari drop every `::-webkit-scrollbar*` rule for that
30
- element, including `::-webkit-scrollbar-thumb:hover` — measured in chromium
31
- as an 8px `::-webkit-scrollbar` width taking effect on its own and being
32
- ignored as soon as `scrollbar-width: thin` is added. Declaring both
33
- unconditionally therefore leaves the hover tokens with no rendering at all,
34
- because the engines that implement the hover pseudo-element are exactly the
35
- ones the standard properties silence, and Firefox has no hover
36
- pseudo-element to fall back on.
37
-
38
- `not selector(::-webkit-scrollbar)` is true only where the pseudo-element
39
- is unimplemented, so Firefox takes the standard path and WebKit-based
40
- engines take the pseudo-element path. An engine too old for the
41
- `selector()` function makes the condition invalid, which evaluates false
42
- and selects the pseudo-element path — the correct side for the pre-16.4
43
- Safari that is the realistic case. */
44
- @supports not selector(::-webkit-scrollbar) {
45
- /* Declared on every element rather than inherited from `body`. Inheriting
46
- would pass down the COLOUR already substituted at `body`, so a descendant
47
- rebinding --dsh-scrollbar-thumb could not change it; re-declaring makes
48
- each element substitute the variable as it sees it, which is what gives
49
- an elevated surface a working rebind. `scrollbar-width` is not an
50
- inherited property at all, so it needs the per-element declaration
51
- regardless.
52
-
53
- No hover counterpart exists on this path: `scrollbar-color` states one
54
- thumb colour and the engine derives its own hover treatment. */
55
- body,
56
- body * {
57
- scrollbar-width: thin;
58
- scrollbar-color: var(--dsh-scrollbar-thumb) transparent;
59
- }
60
- }
61
-
62
- /* Not gated in turn: an engine that does not implement these pseudo-elements
63
- drops the rules as unknown selectors, so the gate would only restate what
64
- selector matching already does. Not inherited either, hence the unscoped
65
- selectors. */
66
- ::-webkit-scrollbar {
67
- width: 8px;
68
- height: 8px;
69
- }
70
-
71
- /* Track stays transparent so the thumb reads against whatever surface scrolls
72
- under it; only the thumb carries a token colour. */
73
- ::-webkit-scrollbar-track {
74
- background: transparent;
75
- }
76
-
77
- ::-webkit-scrollbar-thumb {
78
- border-radius: 4px;
79
- background: var(--dsh-scrollbar-thumb);
80
- }
81
-
82
- ::-webkit-scrollbar-thumb:hover {
83
- background: var(--dsh-scrollbar-thumb-hover);
84
- }
85
-
86
- /* Both scrollbars meeting in a corner: no separate token, so the corner
87
- matches the transparent track rather than the UA's opaque default. */
88
- ::-webkit-scrollbar-corner {
89
- background: transparent;
90
- }
@@ -1,31 +0,0 @@
1
- /* Syntax-highlight token palette: the values behind shiki's css-variables
2
- theme (--shiki-* custom properties emitted by the ui-primitives CodeBlock).
3
- Light values on :root, dark overrides on the body attribute — the same
4
- cascade as every other token sheet. Background/foreground deliberately
5
- alias the markdown code-block tokens so highlighted and plain blocks agree. */
6
-
7
- :root {
8
- --shiki-foreground: var(--dsw-alias-label-primary);
9
- --shiki-background: var(--dsw-alias-markdown-code-block);
10
- --shiki-token-constant: #1c7ed6;
11
- --shiki-token-string: #2f9e44;
12
- --shiki-token-comment: #868e96;
13
- --shiki-token-keyword: #d6336c;
14
- --shiki-token-parameter: #e8590c;
15
- --shiki-token-function: #6741d9;
16
- --shiki-token-string-expression: #2b8a3e;
17
- --shiki-token-punctuation: #495057;
18
- --shiki-token-link: #1971c2;
19
- }
20
-
21
- body[data-ds-dark-theme] {
22
- --shiki-token-constant: #4dabf7;
23
- --shiki-token-string: #69db7c;
24
- --shiki-token-comment: #adb5bd;
25
- --shiki-token-keyword: #faa2c1;
26
- --shiki-token-parameter: #ffa94d;
27
- --shiki-token-function: #b197fc;
28
- --shiki-token-string-expression: #8ce99a;
29
- --shiki-token-punctuation: #ced4da;
30
- --shiki-token-link: #74c0fc;
31
- }