dsh-pixel-ui 1.8.0 → 1.9.0
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.md +30 -29
- package/assets/complete-ui/marble/ATTRIBUTION.md +28 -0
- package/assets/complete-ui/marble/LICENSE.txt +20 -0
- package/assets/complete-ui/marble/button-hover.png +0 -0
- package/assets/complete-ui/marble/button-press.png +0 -0
- package/assets/complete-ui/marble/button.png +0 -0
- package/assets/complete-ui/marble/icon-button.png +0 -0
- package/assets/complete-ui/marble/input.png +0 -0
- package/assets/complete-ui/marble/panel.png +0 -0
- package/assets/complete-ui/marble/popover.png +0 -0
- package/assets/complete-ui/marble/select.png +0 -0
- package/assets/complete-ui/pumpkin/ATTRIBUTION.md +7 -2
- package/assets/complete-ui/pumpkin/button-hover.png +0 -0
- package/assets/complete-ui/pumpkin/button-press.png +0 -0
- package/assets/complete-ui/pumpkin/button.png +0 -0
- package/assets/complete-ui/pumpkin/icon-button.png +0 -0
- package/assets/complete-ui/pumpkin/input.png +0 -0
- package/assets/preview-hologram.png +0 -0
- package/assets/preview-marble.png +0 -0
- package/assets/preview-papernote.png +0 -0
- package/assets/preview-pumpkin.png +0 -0
- package/lib/client.js +125 -14
- package/lib/client.js.map +2 -2
- package/package.json +81 -81
package/README.md
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
# 🪵 dsh-pixel-ui
|
|
6
6
|
|
|
7
|
-
> DeepSeek Harness 像素皮肤(Agent Xi
|
|
7
|
+
> DeepSeek Harness 像素皮肤(Agent Xi 风格):八个主题一键切换——像素·木屋 / 像素·羊皮纸 / 像素·暖阳 / 像素·终端绿 / 像素·全息 / 像素·南瓜灯 / 像素·便签本 / 像素·云石,随时可切回现代默认 UI。
|
|
8
8
|
|
|
9
9
|

|
|
10
10
|

|
|
11
|
-

|
|
12
|
+

|
|
13
13
|

|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
|
|
19
19
|
`dsh-pixel-ui` 是一个**皮肤插件**,把 dsh Web GUI 重皮肤成像素 RPG 风:
|
|
20
20
|
|
|
21
|
-
1.
|
|
22
|
-
2. **像素质感**:前四套**完全平面**——整像素 2px 描边、平涂色块的一档明度差、2px 棋盘抖动、手绘 SVG 像素图形(对勾/单选点/下拉箭头/光标),零 `box-shadow` 与 `text-shadow
|
|
21
|
+
1. **八个主题**:像素·木屋(深木 + 金)、像素·羊皮纸(浅色纸面 + 金棕)、像素·暖阳(暖橙木)、像素·终端绿(终端绿字)、像素·全息(真 PNG 9-slice 深蓝全息框 + 青色描边)、像素·南瓜灯(暗橙藤蔓框 + 暖金)、像素·便签本(浅色活页纸 + 铅笔光标)、像素·云石(板岩 + 白石框 + 钢青);
|
|
22
|
+
2. **像素质感**:前四套**完全平面**——整像素 2px 描边、平涂色块的一档明度差、2px 棋盘抖动、手绘 SVG 像素图形(对勾/单选点/下拉箭头/光标),零 `box-shadow` 与 `text-shadow`;后四套是**真素材分支**,使用 Complete UI 素材自带的浮雕边框(CC BY 4.0,见下方授权),全息/南瓜灯/便签本/云石的对话框、菜单、主按钮、输入框、选中行各取不同的 9-slice 策略;
|
|
23
23
|
3. **宿主表面一起换色**:主题 token 从 17 个扩到 23 个,新增用户气泡、弹层菜单、输入区、选择键、提示底等宿主自绘表面的颜色,气泡/输入区不再留着宿主默认蓝;
|
|
24
24
|
4. **细节与动感**:所有动效走 `steps()` 阶梯(80/140/220ms),按下 1px 位移、页签下划线逐格生长、思考中闪烁光标、运行中左条呼吸、toast 三帧进入;另有主题化勾/点、代码块终端顶栏、表格斑马纹、吸顶标题底线、滚动条握把、纸面专用深色光标。`prefers-reduced-motion` 下一律关闭;
|
|
25
25
|
5. **桌面端友好**:内容列宽随视口撑开(`clamp(680px, 64vw - 140px, 1200px)`,窄屏仍是宿主原本的 680px),皮肤选择在 `dsh-app://` 页面上也能恢复;素材在构建期转成 data URI 内联,换素材只需重新 build + 刷新页面,不必重启宿主。
|
|
@@ -63,10 +63,7 @@
|
|
|
63
63
|
- 输入框:`input.png` 32×32 → `slice:10 fill`;选中行:`select-bar.png`;滚动条:`scroll-handle.png`;
|
|
64
64
|
- **Tooltip / Toast 保持扁平薄边**(2px 青色),不再套 10px 面板框——这是木刻版本翻车的直接原因。
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
> 只取 8 张切片,完整署名与许可证在
|
|
68
|
-
> [`assets/complete-ui/hologram/ATTRIBUTION.md`](assets/complete-ui/hologram/ATTRIBUTION.md)。
|
|
69
|
-
> 全息是**第五套**,和南瓜灯/便签本同属真素材分支;前四套仍保持零立体、零阴影。
|
|
66
|
+

|
|
70
67
|
|
|
71
68
|
### 像素·南瓜灯 · `pixel-pumpkin`
|
|
72
69
|
|
|
@@ -78,8 +75,7 @@
|
|
|
78
75
|
- **图标按钮**:`button_simple1.png` 32×32 → `slice:4 4 10 4`;发送键不再挤压横条按钮;
|
|
79
76
|
- **输入框 / 选中行**:`text_field.png` / `dropdown.png` 32×32 → `slice:6 fill`;选中行用素材自带的深红底,文字保持奶油色。
|
|
80
77
|
|
|
81
|
-
|
|
82
|
-
> 源文件映射与署名在 [`assets/complete-ui/pumpkin/ATTRIBUTION.md`](assets/complete-ui/pumpkin/ATTRIBUTION.md)。
|
|
78
|
+

|
|
83
79
|
|
|
84
80
|
### 像素·便签本 · `pixel-papernote`
|
|
85
81
|
|
|
@@ -91,12 +87,19 @@
|
|
|
91
87
|
- **输入框**:`Textfield01.png` 64×32 → `slice:4 4 6 4`;**光标**:`CursorPencil01.png`,铅笔贯穿按钮/输入框/正文,热区在笔尖;
|
|
92
88
|
- 便签纸面与页面同色,额外用 2px 墨线(`--pxa-outline`)把“纸”钉出来,避免菜单看起来像悬浮文字。
|
|
93
89
|
|
|
94
|
-
|
|
95
|
-
> 源文件映射与署名在 [`assets/complete-ui/papernote/ATTRIBUTION.md`](assets/complete-ui/papernote/ATTRIBUTION.md)。
|
|
90
|
+

|
|
96
91
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
>
|
|
92
|
+
### 像素·云石 · `pixel-marble`
|
|
93
|
+
|
|
94
|
+
> 深色 · 板岩 `#161C26` + 白石 `#E8EFF2` + 钢青 `#7FB2E5`;对话框是一整圈白石框,按钮/输入框/选中行是白石控件、深墨文字。
|
|
95
|
+
|
|
96
|
+
- **对话框**:`Frame_Standard_01a.png` 96×96 → `slice:20 fill`、`border-image-repeat:repeat`;白石的 20px 边框只给对话框和菜单;
|
|
97
|
+
- **菜单**:`Frame_Lite_01a.png` 32×32 → `slice:12 fill`;`repeat` 平铺,石纹不会被拉糊;
|
|
98
|
+
- **主按钮**:`Button_Large_Release/Press/Lock`(96×32,三态)→ `slice:5 8 6 8`、`border-width:5px 6px 6px 6px`;白石底 + 深墨字;
|
|
99
|
+
- **图标按钮**:`Button_Small_Release` 32×32 → `slice:6 fill`;
|
|
100
|
+
- **输入框 / 选中行**:`Textfield_01a` / `Dropdown_01a` 32×32 → `slice:6 fill`;浅色控件单独用 `--pxa-select-ink`,不会出现浅字压浅底。
|
|
101
|
+
|
|
102
|
+

|
|
100
103
|
|
|
101
104
|
## Motion & detail
|
|
102
105
|
|
|
@@ -127,10 +130,10 @@
|
|
|
127
130
|
| dsh 生态 | `0.1.0-rc.6` ~ `0.2.x`(ThemeService `register`/`setTheme` + `settings.general.item` 槽位;`0.2.1-rc.3` 已按源码逐条核对,并用 0.2.1 真实的 `ThemeRuntime` 跑通注册/恢复/切换契约;见 `docs/dev/迭代记录.md`) |
|
|
128
131
|
| 兼容声明 | 同时声明 `engines.dsh` 与 `@deepseek-ai/dsh-*` peers:0.2.1 的 app-boot 优先读 `engines.dsh`,dshmarket 的发现页把两者取交集;任一判定器都能过 |
|
|
129
132
|
| DSH Desktop | 2.0.x(web 兼容模式/高级模式均适用) |
|
|
130
|
-
| 模式 |
|
|
133
|
+
| 模式 | 六深色 + 两浅色(`colorScheme` 按主题声明) |
|
|
131
134
|
| 浏览器 | 现代 Chromium / Firefox(`localStorage` + CSS 变量 + SVG 光标) |
|
|
132
135
|
| 字体 | fusion-pixel 12px zh_hans(MIT)+ Press Start 2P(OFL),随包分发 |
|
|
133
|
-
| 对比度 |
|
|
136
|
+
| 对比度 | 八主题全部通过 WCAG AA(正文 ≥4.5:1、非文本 ≥3:1,`npm run test:contrast` 门禁) |
|
|
134
137
|
|
|
135
138
|
## Install / Uninstall
|
|
136
139
|
|
|
@@ -146,7 +149,7 @@ GitHub Releases(无需 npm,同样开箱即用):
|
|
|
146
149
|
|
|
147
150
|
```bash
|
|
148
151
|
# 下载 Releases 里的 dsh-pixel-ui-<version>.tgz
|
|
149
|
-
dsh plugin add ./dsh-pixel-ui-1.
|
|
152
|
+
dsh plugin add ./dsh-pixel-ui-1.9.0.tgz
|
|
150
153
|
```
|
|
151
154
|
|
|
152
155
|
GitHub 源码(构建产物已随仓库提交,无需构建):
|
|
@@ -197,21 +200,21 @@ DSH Desktop 默认每次启动随机分配本地 Web 端口,而浏览器 `loca
|
|
|
197
200
|
|
|
198
201
|
1. 安装后重启 dsh / DSH Desktop;
|
|
199
202
|
2. 首次加载自动激活默认主题「像素·木屋」;
|
|
200
|
-
3. 设置 → 通用 →
|
|
203
|
+
3. 设置 → 通用 → **像素主题**,九个按钮一键切换八个皮肤和「现代默认」;
|
|
201
204
|
4. 选「现代默认」(或外观行选 浅色 / 深色 / 跟随系统)即整体退出皮肤,选择会被记住,下次打开不复活。
|
|
202
205
|
|
|
203
206
|
最小可复现示例:安装 → 重启 → 木屋主题上身 → 切换到「像素·便签本」→ 对话框变成带装订孔的活页纸 → 输入框文字清晰可读 → 点「现代默认」→ 页面立即回到现代 UI → 刷新页面仍是现代 UI。
|
|
204
207
|
|
|
205
208
|
## Configuration
|
|
206
209
|
|
|
207
|
-
-
|
|
210
|
+
- **无配置项**:八个主题的 23 个 `--dsw-*` token 定义在 `src/client/index.js` 的 `THEMES`,像素质感与 9-slice 素材层在 `src/client/pixel.css`;
|
|
208
211
|
- **默认主题**:`pixel-wood`(仅首次安装时自动激活,之后尊重你的选择);
|
|
209
212
|
- **持久化**:双层——宿主文件 `$DSH_HOME/storages/dsh-pixel-ui/preference.json`(权威,跨端口/跨浏览器)+ 浏览器 `localStorage` 的 `dsh-pixel-ui:theme`(同 origin 镜像);
|
|
210
213
|
- 无环境变量、无敏感项。
|
|
211
214
|
|
|
212
215
|
## Permissions & data
|
|
213
216
|
|
|
214
|
-
- 宿主进程:**只读**本包内字体文件;在 `$DSH_HOME/storages/dsh-pixel-ui/` 下读写一个主题偏好 JSON(只注册 `/dsh-pixel-ui/fonts/*` 与 `/dsh-pixel-ui/preference` 两个路由,字体文件名白名单、主题 id
|
|
217
|
+
- 宿主进程:**只读**本包内字体文件;在 `$DSH_HOME/storages/dsh-pixel-ui/` 下读写一个主题偏好 JSON(只注册 `/dsh-pixel-ui/fonts/*` 与 `/dsh-pixel-ui/preference` 两个路由,字体文件名白名单、主题 id 白名单,均无路径穿越);四套素材主题的 PNG 在构建期已内联进 `lib/client.js`,宿主不再按路径读素材;
|
|
215
218
|
- 浏览器半边:注册主题 + 注入样式表 + 一个设置行;无网络请求、无遥测、不读凭据,只在 `localStorage` 存一个主题 id。
|
|
216
219
|
|
|
217
220
|
## Troubleshooting
|
|
@@ -237,21 +240,19 @@ npm test # test:compat + test:host + test:client + test:contrast
|
|
|
237
240
|
- `scripts/check-compat.mjs`:`engines.dsh` / dsh peers / dshReleases 的声明门禁(0.2.1-rc.3 严格安装路径)
|
|
238
241
|
- `scripts/asset-inline.mjs`:把 CSS 里的 `url('pxasset:<theme>/<file>.png')` 换成 data URI,并用 `ASSET_DIRS` 白名单校验主题名
|
|
239
242
|
- `scripts/test-host.mjs`:node 半边(字体白名单 / 偏好路由读写与校验 / **确认没有素材路由** / dispose)
|
|
240
|
-
- `scripts/test-client.mjs`:browser 半边(加载真实 lib/client.js
|
|
241
|
-
- `scripts/audit-contrast.mjs
|
|
243
|
+
- `scripts/test-client.mjs`:browser 半边(加载真实 lib/client.js,覆盖注册、恢复矩阵、交互、渲染、动效门禁、**四套素材主题的内联 9-slice**、`data-pixel-asset` 开关、dispose)
|
|
244
|
+
- `scripts/audit-contrast.mjs`:八主题 WCAG 对比度门禁(改 palette 必跑;新增用户气泡 / 菜单面 / 输入区三对)
|
|
242
245
|
|
|
243
246
|
改动皮肤后重新构建并刷新浏览器即可;**素材已内联,新增素材主题不再需要重启宿主**。开发文档在 `docs/dev/`(计划 / 迭代 / 踩坑)。欢迎 PR;行为变更请同步更新 README。
|
|
244
247
|
|
|
245
248
|
## License & security
|
|
246
249
|
|
|
247
250
|
[MIT](./LICENSE) © 2026 zhang66633 · 字体:fusion-pixel(MIT)、Press Start 2P(SIL OFL)。
|
|
248
|
-
`pixel-hologram`(8 张)、`pixel-pumpkin`(8 张)、`pixel-papernote`(7 张)的 Complete UI 切片
|
|
251
|
+
`pixel-hologram`(8 张)、`pixel-pumpkin`(8 张)、`pixel-papernote`(7 张)、`pixel-marble`(8 张)的 Complete UI 切片
|
|
249
252
|
© Crusenho Agus Hennihuno,[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/),
|
|
250
253
|
分别见 [`hologram`](assets/complete-ui/hologram/ATTRIBUTION.md) /
|
|
251
254
|
[`pumpkin`](assets/complete-ui/pumpkin/ATTRIBUTION.md) /
|
|
252
|
-
[`papernote`](assets/complete-ui/papernote/ATTRIBUTION.md)
|
|
253
|
-
|
|
254
|
-
> 未收录 PixelPocketPhoneUI 的 PNG:该素材包只有 © IndigoLay 与 Unity Asset Store EULA,
|
|
255
|
-
> 没有随包再分发许可。若将来拿到书面许可,可按同一 `pxasset:` 流程接入(见 `docs/dev/踩坑记录.md` #13)。
|
|
255
|
+
[`papernote`](assets/complete-ui/papernote/ATTRIBUTION.md) /
|
|
256
|
+
[`marble`](assets/complete-ui/marble/ATTRIBUTION.md) 的 ATTRIBUTION。
|
|
256
257
|
|
|
257
258
|
安全问题请通过 GitHub **security advisory** 私下报告,不要发公开 issue。
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Complete UI Essential Pack · Stone theme
|
|
2
|
+
|
|
3
|
+
Selected sprites from **Complete UI Essential Pack v2.4** by
|
|
4
|
+
**Crusenho Agus Hennihuno** (<https://crusenho.itch.io>), used under the
|
|
5
|
+
**Creative Commons Attribution 4.0 International (CC BY 4.0)** license:
|
|
6
|
+
<https://creativecommons.org/licenses/by/4.0/>.
|
|
7
|
+
|
|
8
|
+
The sprites are used unmodified as 9-slice textures in the `pixel-marble`
|
|
9
|
+
theme. They are inlined into the client bundle as data URIs at build time
|
|
10
|
+
(`scripts/asset-inline.mjs`).
|
|
11
|
+
|
|
12
|
+
- Original pack: Complete UI Essential Pack v2.4
|
|
13
|
+
- Theme: `04_Stone_Theme`
|
|
14
|
+
- License text: `LICENSE.txt` in this directory.
|
|
15
|
+
|
|
16
|
+
| Local file | Source sprite | Role |
|
|
17
|
+
| --- | --- | --- |
|
|
18
|
+
| `panel.png` | `UI_Stone_Frame_Standard_01a.png` | dialog frame |
|
|
19
|
+
| `popover.png` | `UI_Stone_Frame_Lite_01a.png` | menu / popover frame |
|
|
20
|
+
| `button.png` | `UI_Stone_Button_Large_Release_01a1.png` | primary button (rest) |
|
|
21
|
+
| `button-hover.png` | `UI_Stone_Button_Large_Press_01a1.png` | primary button (hover) |
|
|
22
|
+
| `button-press.png` | `UI_Stone_Button_Large_Lock_01a1.png` | primary button (pressed) |
|
|
23
|
+
| `icon-button.png` | `UI_Stone_Button_Small_Release_01a1.png` | icon-only primary button |
|
|
24
|
+
| `input.png` | `UI_Stone_Textfield_01a.png` | text field |
|
|
25
|
+
| `select.png` | `UI_Stone_Dropdown_01a.png` | selected row / menu item |
|
|
26
|
+
|
|
27
|
+
Modifications: none to the images; only CSS border-image slicing/repeating is
|
|
28
|
+
applied at runtime.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Attribution 4.0 International (CC BY 4.0)
|
|
2
|
+
|
|
3
|
+
You are free to:
|
|
4
|
+
|
|
5
|
+
Share — copy and redistribute the material in any medium or format for any purpose, even commercially.
|
|
6
|
+
|
|
7
|
+
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
|
|
8
|
+
|
|
9
|
+
The licensor cannot revoke these freedoms as long as you follow the license terms.
|
|
10
|
+
|
|
11
|
+
Under the following terms:
|
|
12
|
+
|
|
13
|
+
Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
|
|
14
|
+
|
|
15
|
+
No additional restrictions - You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
|
|
16
|
+
|
|
17
|
+
License Link: https://creativecommons.org/licenses/by/4.0/
|
|
18
|
+
|
|
19
|
+
Licensor Owner: Crusenho Agus Hennihuno
|
|
20
|
+
Licensor Store Link: https://crusenho.itch.io
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -25,5 +25,10 @@ route.
|
|
|
25
25
|
| `input.png` | `ui_pumpkin_text_field.png` | text field |
|
|
26
26
|
| `select.png` | `ui_pumpkin_dropdown.png` | selected row / menu item |
|
|
27
27
|
|
|
28
|
-
Modifications:
|
|
29
|
-
|
|
28
|
+
Modifications: the flat interior fill of the button sprites (button, button-hover,
|
|
29
|
+
button-press, icon-button) was darkened from `#BF5F16` to `#8A3E0C`, and of the
|
|
30
|
+
text-field sprite from `#BF5F16` to `#3A2210`, so primary-button ink and input
|
|
31
|
+
placeholder/text reach WCAG AA on the rendered fill (`--dsw-alias-button-primary-fill`
|
|
32
|
+
and `--px-input-bg` respectively). Rims, pumpkin vines and highlights are untouched.
|
|
33
|
+
Only CSS border-image slicing/scaling is applied at runtime; all other pixels are
|
|
34
|
+
the original artwork.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/client.js
CHANGED
|
@@ -1235,17 +1235,17 @@ html[data-pixel-theme='pixel-pumpkin'] {\r
|
|
|
1235
1235
|
--pxa-menu: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAuFJREFUWIXFl79LG2EYxz93Go4EL3j+INqKFdriVMRJRAu6lNJi6NKpi4vUf0Chm10Vd8HFpS3tKLRbm4B1SJcgWYQOlaCYGJvTi01NSr0O+sZE7707k0C/S+7u836f5z3yPO/7Hlzo5asB+/3bxzYSufFGvKq4SB+pfElty2K48ka8iriwv47ZT97s099+xsrT2+dwfNMXb8SrigFsmfS3n5E+Upn9uAdb5vlzD96IF0AVAwrJECt9ofNZ9oUoJEOXA2UcqNt7wdXCWqnmP1nKddXcu/FGvIKr8ZROIRlirvuQD0Z/7YBkCMGd5MaqvW6xW97t7bweDQwufDYs8laOR8UQ5UygkmDDymAfdzIQKVeei9+dA42dA82RVXtlsaOJmOJaqfMzebKmScQweBjuufaWG1YGQMqEd3G1A1kXVNqILZPZ3SLpI7VSLAwZNZO4qqxpAkiZSC6LrYxvKkp1perDRWZ3i5VK1YeLNZO4qn3LAqA3HL7GqpO7xW4trJXQhy+NS7ku6CtW7qsrWSSUTURITMhPbF9dUK+a1gVZ05S+vZNOSiUU2+an+rc5XXCT5NXqDYc9u8B1L1hc7SBiGI5FdpPkDe0F9UzianJfe4EoFK/1/CbyE7vSBU6HhmZ1gVtsNZqIKfGUzqcXvaSPVOa6D2HIQJ/W6u6Cfcsia5psWBncYkcTMUUFmFouOxbK1HK57rcX8op9oyKUFeJVVlcRCsmKMGIYjt0gkjkxP7FbRgODC7fObOa6Dyneucv9H0W03j+UMwHKmQDxlE66dIL17Ddjz+9hfTtf5XRNQ9c0IoZxjQG0BYPYx514xfa1FAN87zkjb+XQtgO0BYO0BYP8Oj2lLRh0ZFnTbN5SLFtO52fyAFLWtAOJ26ECkDIvr+8DiZRPa54HDi/+34/lrfGUzgTOEsuljDfiFVwBWB+ZtCceFBwTRBMxxY0D1Out6YL1kclrn8/RRMwXb8T7D0nQvI83eiFSAAAAAElFTkSuQmCC");\r
|
|
1236
1236
|
--pxa-menu-slice: 12 fill;\r
|
|
1237
1237
|
--pxa-menu-width: 12px;\r
|
|
1238
|
-
--pxa-button: url("data:image/png;base64,
|
|
1239
|
-
--pxa-button-hover: url("data:image/png;base64,
|
|
1240
|
-
--pxa-button-active: url("data:image/png;base64,
|
|
1238
|
+
--pxa-button: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAgCAYAAADtwH1UAAABzElEQVR4nO2aMUvDQBTH3x2dhApOjk5ZBBFBcNCABedO4ifwQ4jOil/AzU8gTpkFheogCFIcMzk6FSx0PXmX3nlpLrGB9h6c7zeU5Hrvtfz/JLncewIc1PO+Ag/i4EXMjn2f7qruzgRge60YSFJfKEA+KOWIPc6lkmOKO9ceqK8zZZIxSyZJQaxfa+0lfrD4gckHheZ4BdTddpgwdGYH7s7zQD/9Pzm5SkrnQt1sKvOQcMX/hEnwPxczG7BSNWE4Ajl+//3CwOIvHp+mqL1cvX2rLJ+YMKD2ehXE0CF5FUQHas9XADGy9hWbWT5JWrwJM3SwAcSwAcSwAcSwAcSwAcSwAcRIroIRkg/4CqBG4p500941sxi8mg5HIHTl/vLIVve5IrZcbDEmSWF88VB0RXBRnq4zgldBxBQ1YeS4b29DFXw7pm17iEyO2ONcmvS8z/ShsN1bxgRfEs+DWhfy593KdnPEHudSl2MqPtaEtQF4Yk1ggmCaITpPH1043BrrgToTfJ0TbQ0zOWKPc/lLT9Rer4KyvZ5CE5hwoPj910dhW1KaTMDJs7Q1zOSIPc6lSU8Uv9SaiAMZ9Lx9omayS93cOkyO2OPAYR49fwDBAQQZqKqgBwAAAABJRU5ErkJggg==");\r
|
|
1239
|
+
--pxa-button-hover: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAgCAYAAADtwH1UAAABlklEQVR4nO3aMUvDQBQH8JdDHIQKTo5OWVxEEDpoBsG1Hf0EfgMX0VlxcXTzEzi2q6AQHQqCFMdMjk4FCx1cTi7xzksuFyo0eZD+f0NJ0ruX8h5Jk7wQAQDAsgrsFfm8L0sHHbzkxilfJ3uyszsj2tnINoRR+R6SOBej7fNsToxf9lizID/PpA4GNQsjCjav09wL9YHkNyyJs5yrI8B32oFmrBQ33J8nDe16OR1fhbn1QN5uS/0nYSf/g2aN/7g226I1twjjCYnp298XGpK/eGU5VbkX63evzuUTNEPlPr0KAj4CV0F8VO5xBDAT3ltsqF8YZXfCwAcFYIYCMEMBmKEAzFAAZigAM4EuGKMkxhHATahn0lXPrmExSnM6nlCQdu4vj0x3Hx2xeplmTBjR9OLBbUkWW2ZQL/H03ql5F+Cjcp92wwbdQ9kbdM1pyFH2xPS/7xDpGG2fZ6vI57A/ov7oMTDtSFOEoiSm4emqs7l38+1/W6wiRtvn2XwxdPLVcq4frIrgjCYyg+cZ66NjtH0eWebJ5w82gMizrPsdPgAAAABJRU5ErkJggg==");\r
|
|
1240
|
+
--pxa-button-active: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAgCAYAAADtwH1UAAABpUlEQVR4nO2aMUvFMBDHr0EQhCc4OTp1EUQEwUELPnB2dHbwQ4jOil/AzcHZ8c2CQnUQBHk4dnJ0emDhgVMkralpkxSF1x7E/28obXp3Lf8jaZoLEQAAsBGZF/JhWzqNdh5rdoqPo0052JgSrS+VDXHifkKW1mKE7mdixfjGtK1O5Pux1MFAx8QJRcsXhfZCHSB+z2RpqbnqAb5hB/TDXLPh5iTr6dH/k4PzuHYdyctVqT8SpvhvNO395UJmhRbsJIwnJPKXnxsaiD97XJoq7cXi1bM1fQL9oLQvZkGAD4FZEB9Ke/QAZoT3Fxt0T5yUf8KADySAGSSAGSSAGSSAGSSAGSSAGYEqGCNZih7AjVBr0m1r12A2ODUdTygqKvdne1V1HxWxbqmKMXFC+emtXZJslsxAt2AWxEw02hrK3bWczGHIwrVi+tc9RDpG6H4mLXqq4ef+dVBuzKoloUmWUn79aTUPDuf9u8VaYoTuZ+KLocXff7qLqnqwToILZdzEZ+tDxwjdz6RNTyW+Oq8+wqphREPnJi1tbOKz9aFjhO5HBr/R8wuC++L290wmRwAAAABJRU5ErkJggg==");\r
|
|
1241
1241
|
--pxa-button-slice: 6 8 12 8 fill;\r
|
|
1242
1242
|
--pxa-button-width: 6px 8px 10px 8px;\r
|
|
1243
1243
|
--pxa-button-ink: #FFF6E6;\r
|
|
1244
1244
|
--pxa-button-hover-ink: #FFF6E6;\r
|
|
1245
|
-
--pxa-icon: url("data:image/png;base64,
|
|
1245
|
+
--pxa-icon: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABe0lEQVR4nO2XP0oEMRTGv4StFkawsrRKI8giCBY6oBfYSjyBVxDEAyxewM4TiNVeQGG0EAQZLKeytBrYhW0jLzHZmZjJajGJxf6afZOX5Hu8zZ8Xhgby6VDCgR09M/qdne/LbG8BjDa1Q+TwUhXhcQ2fsq3456U0g3tH5GBb10qbRxcnqkJrAmC+tMdk4DbcXVW9Cp5NROubo6yjif/QKGsM5m9DZKNl2wcWvQawjaG1SZtv3L6yWOKuBmmrXZASnnIXkHb6DKDrSI2ByPVJmBK+DgDrvyAxPH0AVcRCxKUq/kMGymU9EJ2yBqc72RzHF5NGYdATVkPkqh5gSYrSRmXMkRgmb3Z0PXA6to+KFua2/GuGQuPIdz/VAczMy8UE4fLdUb1sfnt1k6hZ3IE51RqgAOjDBhEJtfgB8Mf3rNXg69jlWyUQmpMgbbULpgcn8nh3jpiQ+PjlQe8CMkwmfB27fKsEQnOSJtn2TUBQJtzOpqPPFyI0zvjI/gJjIqCQvIbvSgAAAABJRU5ErkJggg==");\r
|
|
1246
1246
|
--pxa-icon-slice: 4 4 10 4 fill;\r
|
|
1247
1247
|
--pxa-icon-width: 4px 4px 6px 4px;\r
|
|
1248
|
-
--pxa-input: url("data:image/png;base64,
|
|
1248
|
+
--pxa-input: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAA5UlEQVR4nGNkQAL/X1b8Z6ADYBTvYISzGWCWH7Gmi+Vwi22Ogu1mBFs+VYuuloOBviDYEYwDYjmSI1jQxVatfAOmJz75RXX7jhZLYYgx0ctyELDufYbfAQMBmBizrzFuXiROf5tD/MCJkAnEdtD9TH8H3D4Mppg+pZj85zX8Rn8HXHwPLnuYGAYYMI06gGE0CgYYMI06gGE0CgYYMI06gG/OmdH2wP/R9gAMhIWLgOl8GTYGWgBszXIWdAGYI8IY6JgLPp/nYhgIAO6awTigxik9LQd5HOwIZMFN5o50cYTfyf1wewE2tktlQ86FQgAAAABJRU5ErkJggg==");\r
|
|
1249
1249
|
--pxa-input-slice: 6 fill;\r
|
|
1250
1250
|
--pxa-input-width: 6px;\r
|
|
1251
1251
|
--pxa-input-ink: #FFF6E6;\r
|
|
@@ -1348,6 +1348,79 @@ html[data-pixel-theme='pixel-papernote'] body * {\r
|
|
|
1348
1348
|
cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAWNJREFUWIVjYBgFIx0wogvEiDL8x6V4yWtM9ZQCFmyCX6wD4Oz19cEICbfY/9R2BBM+SWTLY91iGRZPCMIbQlR1wGRfHQzLGRgYqO4IrA6Y7KvDIGOkzvDk3E0Uy2GAmo7AGQJPzt1kqKxoYWgONcYqTy1H4HQAzHIFa3mGB0cf0swRWFN0jCjDf2SfwxyhYC2P1ZDYgnVkZ1GcmujlCLwa6OEIgopp7QiiFNLSEUS7lFaOICm+aOEIklMtsY64YdTKwMDAwNBqp4nXEWTlXUKOgFmuERrKwMDAwBD78gpOR5BdteJyxI/cJSiWwwAuR+CtjvGBJa8ZGGtXn4XzYZbfuXMHw3J8gGwHoDviimcDw507dxh8KisZnrz5Qx8HoDvCILWU4cmbPwwyIixEO4JqzasYUYb/7cwacD7METIiLHgTIVVBjCjD/8cSGnD8X0fnP6HqmuquQreQLj4fBaOAEgAArfrJfFZraPoAAAAASUVORK5CYII=") 4 4, auto !important;\r
|
|
1349
1349
|
}\r
|
|
1350
1350
|
\r
|
|
1351
|
+
/* 云石:板岩底 + 白石框 + 钢青。白石的 20px 边框只给对话框和菜单;\r
|
|
1352
|
+
* 按钮/输入框本身是白石控件,文字用深墨色。 */\r
|
|
1353
|
+
html[data-pixel-theme='pixel-marble'] {\r
|
|
1354
|
+
--px-wood-darkest: #161C26;\r
|
|
1355
|
+
--px-wood-dark: #1F2836;\r
|
|
1356
|
+
--px-wood-mid: #2A3548;\r
|
|
1357
|
+
--px-wood-warm: #354258;\r
|
|
1358
|
+
--px-wood-light: #5C708C;\r
|
|
1359
|
+
--px-wood-pale: #AEBCCB;\r
|
|
1360
|
+
--px-text-on-dark: #E9F0F7;\r
|
|
1361
|
+
--px-text-light: #AEBCCB;\r
|
|
1362
|
+
--px-parchment: #E9F0F7;\r
|
|
1363
|
+
--px-gold: #7FB2E5;\r
|
|
1364
|
+
--px-gold-bright: #A9D1F2;\r
|
|
1365
|
+
--px-gold-dark: #5A88B8;\r
|
|
1366
|
+
--px-gold-deep: #3C5A7A;\r
|
|
1367
|
+
--px-sidebar-fill: #121821;\r
|
|
1368
|
+
--px-line: #0D1219;\r
|
|
1369
|
+
--px-accent-bg: #7FB2E5;\r
|
|
1370
|
+
--px-accent-hover: #9CC6EE;\r
|
|
1371
|
+
--px-accent-ink: #121A24;\r
|
|
1372
|
+
--px-input-bg: #E8EFF2;\r
|
|
1373
|
+
--px-input-text: #1B2230;\r
|
|
1374
|
+
--px-input-ph: #5A6B80;\r
|
|
1375
|
+
--px-input-caret: #5A88B8;\r
|
|
1376
|
+
--px-tooltip-bg: #1B2230;\r
|
|
1377
|
+
--px-code-bg: #1F2836;\r
|
|
1378
|
+
--px-code-ink: #A9D1F2;\r
|
|
1379
|
+
--px-code-meta: #AEBCCB;\r
|
|
1380
|
+
--px-ink-on-mid: #E9F0F7;\r
|
|
1381
|
+
--px-topbar-fill: #1F2836;\r
|
|
1382
|
+
--px-dither: #1B2330;\r
|
|
1383
|
+
--pxa-panel: url("data:image/png;base64,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");\r
|
|
1384
|
+
--pxa-panel-slice: 20 fill;\r
|
|
1385
|
+
--pxa-panel-width: 20px;\r
|
|
1386
|
+
--pxa-panel-repeat: repeat;\r
|
|
1387
|
+
--pxa-menu: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAz5JREFUWIWlVz9IG1Ec/p5cszm4hLrUgHSR0jooBLo0jgoVxN0/OImDi4vDDaFkcWmhOIhEukukkWZsXIRAbmhBspSAcTG85aDZTuE6XH8vv/fu3eWMH4Tk7t6973u//xEA0Or0Qhgozs0I2/1xUZybESZXcW5GODaSwvSU9s1xe+8nkvD1aesIrU4vdGwP3EpN+36ZH268u1NSmxempzQivj6fn7QSmvc0AbYTJ4l7++YVGnKA5ZV59Wx7q6R+e+2u+r3+cQHr/l+N/LzuRQL4woYcWNU2fvwaKcw8hGcRDQytSRayuoBOIOUAfelrLkgiJByfNjWCUUgUkBVEmISFxVksLM6qa9Oazt7Gkmh1eiGdxBa9T3FBGkxrSTkYWoD8VD5ciwnhgVY9Sz8xX2sSu5VazJ1KABGbQggUtRyt6yvtulzZt4riQcjRlz5i1Ymr5bj98zu2Qc4R2nXwOMy04vsPAIYWIcvxLNjbWBIOoOcsT0VObpIBwItczrgTxISMip+J1KcWQv5Jep5zRMw9SXBanV7ILcAxrGwluIefAQRW4ucg1QJeuwuv3c1UoseFA0S1GohSz+azUcWG4yEIEDyGiRkRK0Reu4vqzR2AqMHY0Lq+Qs4RY5u/etaMdUgpB2h1euGEtEQ9gcpoubKP4DHEQxBkJs3qtonywWosv5ZX5rXWOg7cSk2JSNvL2oySsuIp2N4qwa3UVEXd3YlE8Hjy2t1s3bB+cakKEbmBx4PNNRRsRNiXUW8xe4E2eFK5LB+uxbriJ/eLVuF4ZeT3OQqv3ylCm4B8fhKi/39Uur33tT6wvVVS1+d1D/WLSy21osIUISnlzJkR0NOwL30I9+i7kk+NozA9hePTplJN6ckzhrddM7fpPcAegLS+fLAqtBjgvT5tDONrzbZtktrScXenpGLDGTXzAVAjlc2ktiEjqbtyy9A7mbKANqze3D27PphwTo42tThIg2luClYbstaS2ETEQX62BSEQmZSLGjXQkgu4aOUC079ZazmvbFTtCLY50rSYGsnMv1nHp02cHG0KAPj67WcmF5lzpK27kmtoBFAW6Etf8xuP2L2NJQEAZqxkiR+z2dFhqM78A9t9tgHLgs7zAAAAAElFTkSuQmCC");\r
|
|
1388
|
+
--pxa-menu-slice: 12 fill;\r
|
|
1389
|
+
--pxa-menu-width: 12px;\r
|
|
1390
|
+
--pxa-menu-repeat: repeat;\r
|
|
1391
|
+
--pxa-button: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAgCAYAAADtwH1UAAAAAXNSR0IArs4c6QAAAZRJREFUaIHtmjFOwzAUhn8HBpZGSVWpuQALMwsXIRdA7Q1oszEgNWkXZtQeoN24FZUQRHRhKwN6KIpi+1kqvCHvG+3/fbbs2EmlAoqiKEpfMe2G14/PY7stS2Pj6m9n2xmq99X6xupy2+ptOZvD57bNy1XnWguCvbDKaaGNYD+ZyunJ0thE0pPoO947Vflb9AQIoxsgjL6EhdETIEiWxibSp18WPQHC6GeoMHoChNENEEY/Q4XRd4AwegUJoxsgSJbGRq8gYfQECKMbIEw0TgbSc+gt42SAs6+Lq4eb60vpufSSx6eXnytIT8H/Q2tuAGC22B7L+S0AYF8frOGuPpt8Xx+8dSFecvoyBNfpynPGbHo4DsrOyx2qIjfn1DEvdwAA2ogmd/fPAID1cuKdDOXXy4m3LsRLTl+G4Dpdec6YTQ/HQetM/P4xa7bYWn8PvL3XAIDRMPFOhvKjYeKtC/GS05chuE5XnjNm0xPiqIrcAI3P0KrIDTW22aymZrOadvbZ8py6EC8nR74Qpysf6uE42uv8Dc6z5hxuhT2FAAAAAElFTkSuQmCC");\r
|
|
1392
|
+
--pxa-button-hover: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAgCAYAAADtwH1UAAAAAXNSR0IArs4c6QAAAZNJREFUaIHtmjFOw0AQRf8uFDS27CiSfQEaahouQi4QJTcITkeBhJM01FFyANJxKwoEiIoOimgky+CdWZQwheeVu3/+Tma867UUhxbPbx9f7bEyT11ovq1tayiei+XW+s27K75L1+XBeXflFYoL1YIQF9Y4LNQI8ZNpHJ4yT53XTqLvsGeqcVxsByhjDVDGXsLK2A5QpMxT5+3p18V2gDJ2DVXGdoAy1gBl7BqqjL0DlLEjSBlrgCJlnjo7gpSxHaCMNUAZX2SJdg69pcgSnHyeXdxeXZ5r59JL7h6e9keQ7YL/h2ruAaCqdyiypLMRobmQORcX4yvRkV+MJ/e7Y3wkHqSt6h0A4JQmaKCurn+YjGdrAMBmORElNJ6tsVlO2LgYX/LkNITUM6SXrNn0kXhQnQl3c//Ifge8vL4DAIaDjE2G9MNBxsbF+JKnJM8Yz5BesmbT5y8edg1Vxi/mI8fLjGOwmI/sn3HaeGDfCe1E+gbV3DcHuhqxXU3ddjUVN4m0XFyMr0RHfjGeIX2sj8SjXedvMgbJ/79aVMIAAAAASUVORK5CYII=");\r
|
|
1393
|
+
--pxa-button-active: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAgCAYAAADtwH1UAAAAAXNSR0IArs4c6QAAAZNJREFUaIHtmjFOw0AQRf8uFDS27CiSfQEaahouQi4QJTcITkeBhJM01FFyANJxKwoEiIoOimgky+CdWZQwheeVu3/+Tma867UUhxbPbx9f7bEyT11ovq1tayiei+XW+s27K75L1+XBeXflFYoL1YIQF9Y4LNQI8ZNpHJ4yT53XTqLvsGeqcVxsByhjDVDGXsLK2A5QpMxT5+3p18V2gDJ2DVXGdoAy1gBl7BqqjL0DlLEjSBlrgCJlnjo7gpSxHaCMNUAZX2SJdg69pcgSnHyeXdxeXZ5r59JL7h6e9keQ7YL/h2ruAaCqdyiypLMRobmQORcX4yvRkV+MJ/e7Y3wkHqSt6h0A4JQmaKCurn+YjGdrAMBmORElNJ6tsVlO2LgYX/LkNITUM6SXrNn0kXhQnQl3c//Ifge8vL4DAIaDjE2G9MNBxsbF+JKnJM8Yz5BesmbT5y8edg1Vxi/mI8fLjGOwmI/sn3HaeGDfCe1E+gbV3DcHuhqxXU3ddjUVN4m0XFyMr0RHfjGeIX2sj8SjXedvMgbJ/79aVMIAAAAASUVORK5CYII=");\r
|
|
1394
|
+
--pxa-button-slice: 5 8 6 8 fill;\r
|
|
1395
|
+
--pxa-button-width: 5px 6px 6px 6px;\r
|
|
1396
|
+
--pxa-button-ink: #1B2230;\r
|
|
1397
|
+
--pxa-button-hover-ink: #1B2230;\r
|
|
1398
|
+
--pxa-icon: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAQ9JREFUWIXtV7sKwkAQnI0WNgmJCOYHbKxt/BH9AdE/8NFZCEZtrCX5AO38qxRBxcouFrLhPFw73SIZOAgz5Gayexs4oELZQTaRXu+5zYWBR5IeBh59ekfSzL3eAkib/AochDTMzRCOhrEJsX//gnoF1AOoHkJAuQJh4JFT+kNYjaF6APUxrM6A+o+oaoF+gLbvqpm3fRe1R6O77Pc6KgFW+/OrBRpVePOcrY85I73ei2VytmYvSZf2nK2POQDUOcQ8OgEAovmgCDaaHgAA8XaM0fSAeDsWv0jSbZ59GMXFhBOZyC43AECr6SO73NBq+mIASZf4zWJIgDGGm8WQmGQkuwkluwnxs+j+Rbd52+cJri7Wy++hebcAAAAASUVORK5CYII=");\r
|
|
1399
|
+
--pxa-icon-slice: 6 fill;\r
|
|
1400
|
+
--pxa-icon-width: 6px;\r
|
|
1401
|
+
--pxa-input: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAOVJREFUWIVjZGBgYEgrn/O/qSKMgRCQEORjfPH+039CahgYGBgIqYMBlvL2lf/ff/hMjFqiDCXWYhhgIkUxLcDIdoCEIB/jgDrgxftP/0d2FAwuB8Rl9Q2cAx48esKwaFrRwDjg/KXrDApyMgNiOQMDAwOToZ7mgFnOwDDSCyIGhsGUDQcCjBbFow5AccCA1wUDBZjOX7rOwMDAMHCVEQMDw8itjAa8LhgtCfE6oLptOU5N1W3L4ZhYgEs9I6xzKijACxd88+4Dg4iQAFaD3rz7AGfjUoNLDzb1TAwMDANmeWdlOCMAdVNaL5kcHLkAAAAASUVORK5CYII=");\r
|
|
1402
|
+
--pxa-input-slice: 6 fill;\r
|
|
1403
|
+
--pxa-input-width: 6px;\r
|
|
1404
|
+
--pxa-input-ink: #1B2230;\r
|
|
1405
|
+
--pxa-placeholder: #5A6B80;\r
|
|
1406
|
+
--pxa-caret: #5A88B8;\r
|
|
1407
|
+
--pxa-select: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAANBJREFUWIVjYBgFo2AUjIIBBowMDAwMaeVz/jdVhKFIPHj+noGBgYFBQVIQrxi6HLI8PvVwB6SVz/kvKMDLUJjhiWEQLQHMUSwwAXpZjG4fk6AAL10tRgdM7z98HlgHDKjtow4YFA4YzQUDajsDUkmIrcynJYAXxYICvAzo0YBeeRBTqcDUkaqX5f2Hzwx6WkoMazadwWnw42evGRgYGBhkpUTxOuDxs9cYagjpZZyycN9/ZM3IhsA0owN0eZg+YgCy2s7KcEaiNI2CUTAKaAkA7J1WLFOXtqgAAAAASUVORK5CYII=");\r
|
|
1408
|
+
--pxa-select-slice: 6 fill;\r
|
|
1409
|
+
--pxa-select-width: 6px;\r
|
|
1410
|
+
--pxa-select-ink: #1B2230;\r
|
|
1411
|
+
--pxa-ink: #E9F0F7;\r
|
|
1412
|
+
--pxa-accent: #7FB2E5;\r
|
|
1413
|
+
--pxa-accent-bright: #A9D1F2;\r
|
|
1414
|
+
--pxa-hover-wash: rgba(127, 178, 229, 0.14);\r
|
|
1415
|
+
--pxa-tooltip-bg: #1B2230;\r
|
|
1416
|
+
--pxa-tooltip-ink: #E9F0F7;\r
|
|
1417
|
+
}\r
|
|
1418
|
+
html[data-pixel-theme='pixel-marble'] body {\r
|
|
1419
|
+
background-color: var(--px-wood-darkest);\r
|
|
1420
|
+
background-image: repeating-conic-gradient(rgba(127, 178, 229, 0.035) 0 25%, transparent 0 50%);\r
|
|
1421
|
+
background-size: 4px 4px;\r
|
|
1422
|
+
}\r
|
|
1423
|
+
\r
|
|
1351
1424
|
/* ── 共用 9-slice 规则:只在素材主题生效 ─────────────────────────── */\r
|
|
1352
1425
|
/* 便签的纸面几乎与页面同色,补 2px 墨线把「纸」钉出来;其他素材主题的\r
|
|
1353
1426
|
* 边缘本身对比足够,--pxa-outline 不设即透明。 */\r
|
|
@@ -1357,15 +1430,17 @@ html[data-pixel-asset] [data-menu-material] {\r
|
|
|
1357
1430
|
outline-offset: -2px;\r
|
|
1358
1431
|
}\r
|
|
1359
1432
|
html[data-pixel-asset] [role='dialog'] {\r
|
|
1360
|
-
border:
|
|
1433
|
+
border: 0 solid transparent !important;\r
|
|
1434
|
+
border-width: var(--pxa-panel-width, 24px) !important;\r
|
|
1361
1435
|
border-image: var(--pxa-panel) var(--pxa-panel-slice, 24 fill) / var(--pxa-panel-width, 24px) / 0 var(--pxa-panel-repeat, stretch) !important;\r
|
|
1362
1436
|
background: transparent !important;\r
|
|
1363
1437
|
color: var(--pxa-ink) !important;\r
|
|
1364
1438
|
box-sizing: border-box !important;\r
|
|
1365
1439
|
}\r
|
|
1366
1440
|
html[data-pixel-asset] [data-menu-material] {\r
|
|
1367
|
-
border:
|
|
1368
|
-
border-
|
|
1441
|
+
border: 0 solid transparent !important;\r
|
|
1442
|
+
border-width: var(--pxa-menu-width, 10px) !important;\r
|
|
1443
|
+
border-image: var(--pxa-menu) var(--pxa-menu-slice, 10 fill) / var(--pxa-menu-width, 10px) / 0 var(--pxa-menu-repeat, stretch) !important;\r
|
|
1369
1444
|
background: transparent !important;\r
|
|
1370
1445
|
box-sizing: border-box !important;\r
|
|
1371
1446
|
overflow-x: hidden !important;\r
|
|
@@ -1387,7 +1462,8 @@ html[data-pixel-asset] [role='menuitem']:hover {\r
|
|
|
1387
1462
|
}\r
|
|
1388
1463
|
html[data-pixel-asset] button[class*='primary'],\r
|
|
1389
1464
|
html[data-pixel-asset] button[class*='Primary'] {\r
|
|
1390
|
-
border:
|
|
1465
|
+
border: 0 solid transparent !important;\r
|
|
1466
|
+
border-width: var(--pxa-button-width) !important;\r
|
|
1391
1467
|
border-image: var(--pxa-button) var(--pxa-button-slice) / var(--pxa-button-width) / 0 stretch !important;\r
|
|
1392
1468
|
background: transparent !important;\r
|
|
1393
1469
|
color: var(--pxa-button-ink) !important;\r
|
|
@@ -1409,7 +1485,8 @@ html[data-pixel-asset] button[class*='Primary']:active {\r
|
|
|
1409
1485
|
/* 图标主按钮(发送/关闭):用方形图标框,绝不把横条按钮塞进方块。 */\r
|
|
1410
1486
|
html[data-pixel-asset] button[class*='primary']:has(> svg:only-child),\r
|
|
1411
1487
|
html[data-pixel-asset] button[class*='Primary']:has(> svg:only-child) {\r
|
|
1412
|
-
border:
|
|
1488
|
+
border: 0 solid transparent !important;\r
|
|
1489
|
+
border-width: var(--pxa-icon-width) !important;\r
|
|
1413
1490
|
border-image: var(--pxa-icon) var(--pxa-icon-slice) / var(--pxa-icon-width) / 0 stretch !important;\r
|
|
1414
1491
|
background: transparent !important;\r
|
|
1415
1492
|
color: var(--pxa-button-ink) !important;\r
|
|
@@ -1423,7 +1500,8 @@ html[data-pixel-asset] button[class*='Primary']:has(> svg:only-child):hover {\r
|
|
|
1423
1500
|
html[data-pixel-asset] input:not([type='checkbox']):not([type='radio']):not([type='range']),\r
|
|
1424
1501
|
html[data-pixel-asset] textarea,\r
|
|
1425
1502
|
html[data-pixel-asset] [contenteditable='true'] {\r
|
|
1426
|
-
border:
|
|
1503
|
+
border: 0 solid transparent !important;\r
|
|
1504
|
+
border-width: var(--pxa-input-width, 8px) !important;\r
|
|
1427
1505
|
border-image: var(--pxa-input) var(--pxa-input-slice, 10 fill) / var(--pxa-input-width, 8px) / 0 stretch !important;\r
|
|
1428
1506
|
background: transparent !important;\r
|
|
1429
1507
|
color: var(--pxa-input-ink) !important;\r
|
|
@@ -1442,11 +1520,12 @@ html[data-pixel-asset] [contenteditable='true']:empty::before {\r
|
|
|
1442
1520
|
}\r
|
|
1443
1521
|
html[data-pixel-asset] [role='menuitem'][aria-current='page'],\r
|
|
1444
1522
|
html[data-pixel-asset] [role='treeitem'][aria-selected='true'] {\r
|
|
1445
|
-
border:
|
|
1523
|
+
border: 0 solid transparent !important;\r
|
|
1524
|
+
border-width: var(--pxa-select-width, 8px) !important;\r
|
|
1446
1525
|
border-image: var(--pxa-select) var(--pxa-select-slice, 10 fill) / var(--pxa-select-width, 8px) / 0 stretch !important;\r
|
|
1447
1526
|
background: transparent !important;\r
|
|
1448
1527
|
background-image: none !important;\r
|
|
1449
|
-
color: var(--pxa-ink) !important;\r
|
|
1528
|
+
color: var(--pxa-select-ink, var(--pxa-ink)) !important;\r
|
|
1450
1529
|
box-sizing: border-box !important;\r
|
|
1451
1530
|
}\r
|
|
1452
1531
|
/* 浮层只换颜色:2px 主题色边 + 实色底,不套面板图。 */\r
|
|
@@ -1681,10 +1760,39 @@ var THEMES = [
|
|
|
1681
1760
|
"--dsw-specific-selector": "#DCC7A4",
|
|
1682
1761
|
"--dsw-specific-tip": "#E6D7BC"
|
|
1683
1762
|
}
|
|
1763
|
+
},
|
|
1764
|
+
{
|
|
1765
|
+
id: "pixel-marble",
|
|
1766
|
+
colorScheme: "dark",
|
|
1767
|
+
tokens: {
|
|
1768
|
+
"--dsw-alias-bg-base": "#161C26",
|
|
1769
|
+
"--dsw-alias-bg-layer-1": "#1F2836",
|
|
1770
|
+
"--dsw-alias-bg-layer-2": "#2A3548",
|
|
1771
|
+
"--dsw-alias-bg-overlay": "#1B2230",
|
|
1772
|
+
"--dsw-alias-border-l1": "#3C4A60",
|
|
1773
|
+
"--dsw-alias-border-l2": "#A9C0DA",
|
|
1774
|
+
"--dsw-alias-brand-primary": "#7FB2E5",
|
|
1775
|
+
"--dsw-alias-label-primary": "#E9F0F7",
|
|
1776
|
+
"--dsw-alias-label-secondary": "#AEBCCB",
|
|
1777
|
+
"--dsw-alias-state-error-primary": "#FF7A7A",
|
|
1778
|
+
"--dsw-alias-state-success-primary": "#7BE3B0",
|
|
1779
|
+
"--dsw-alias-state-warn-primary": "#FFC857",
|
|
1780
|
+
"--dsw-alias-state-idle-primary": "#6F8098",
|
|
1781
|
+
"--dsw-specific-sidebar-fill": "#121821",
|
|
1782
|
+
"--dsw-alias-button-primary-fill": "#E8EFF2",
|
|
1783
|
+
"--dsw-alias-button-primary-hover": "#F6FAFD",
|
|
1784
|
+
"--dsw-alias-label-primary-foreground": "#1B2230",
|
|
1785
|
+
"--dsw-specific-bubble": "#2A3548",
|
|
1786
|
+
"--dsw-specific-bubble-highlight": "#354258",
|
|
1787
|
+
"--dsw-specific-menu": "#1B2230",
|
|
1788
|
+
"--dsw-specific-input-major": "#1F2836",
|
|
1789
|
+
"--dsw-specific-selector": "#3C4A60",
|
|
1790
|
+
"--dsw-specific-tip": "#2A3548"
|
|
1791
|
+
}
|
|
1684
1792
|
}
|
|
1685
1793
|
];
|
|
1686
1794
|
var PIXEL_IDS = THEMES.map((theme) => theme.id);
|
|
1687
|
-
var ASSET_IDS = /* @__PURE__ */ new Set(["pixel-hologram", "pixel-pumpkin", "pixel-papernote"]);
|
|
1795
|
+
var ASSET_IDS = /* @__PURE__ */ new Set(["pixel-hologram", "pixel-pumpkin", "pixel-papernote", "pixel-marble"]);
|
|
1688
1796
|
var RESTORABLE_IDS = /* @__PURE__ */ new Set(["light", "dark", "system", ...PIXEL_IDS]);
|
|
1689
1797
|
var LOCALE_NS = "settings.pixel-ui";
|
|
1690
1798
|
var MESSAGES = {
|
|
@@ -1698,6 +1806,7 @@ var MESSAGES = {
|
|
|
1698
1806
|
"theme.pixel-hologram": "像素·全息",
|
|
1699
1807
|
"theme.pixel-pumpkin": "像素·南瓜灯",
|
|
1700
1808
|
"theme.pixel-papernote": "像素·便签本",
|
|
1809
|
+
"theme.pixel-marble": "像素·云石",
|
|
1701
1810
|
"theme.system": "现代默认"
|
|
1702
1811
|
},
|
|
1703
1812
|
en: {
|
|
@@ -1710,6 +1819,7 @@ var MESSAGES = {
|
|
|
1710
1819
|
"theme.pixel-hologram": "Pixel · Hologram",
|
|
1711
1820
|
"theme.pixel-pumpkin": "Pixel · Pumpkin",
|
|
1712
1821
|
"theme.pixel-papernote": "Pixel · Papernote",
|
|
1822
|
+
"theme.pixel-marble": "Pixel · Marble",
|
|
1713
1823
|
"theme.system": "Modern default"
|
|
1714
1824
|
}
|
|
1715
1825
|
};
|
|
@@ -1721,6 +1831,7 @@ var THEME_CHOICES = [
|
|
|
1721
1831
|
{ id: "pixel-hologram", swatch: "#14DCEE" },
|
|
1722
1832
|
{ id: "pixel-pumpkin", swatch: "#FF9E2C" },
|
|
1723
1833
|
{ id: "pixel-papernote", swatch: "#F3DCBC" },
|
|
1834
|
+
{ id: "pixel-marble", swatch: "#E8EFF2" },
|
|
1724
1835
|
{ id: "system", swatch: "#7A7A7A" }
|
|
1725
1836
|
];
|
|
1726
1837
|
var fallbackT = (key) => key;
|