# 皮肤与移动布局

[English](SKIN_COMPATIBILITY.en.md) · [第三方插件适配](../README.md#第三方插件适配)

DSH Mobile 在已认证的移动页面中使用专用根布局，继续渲染 DSH 的会话、侧栏、设置和公共插槽；电脑页面不变。皮肤的公共主题变量可继续被组件使用，但依赖原生 CSS 模块类名或特定父节点的背景、人物及侧栏装饰不一定适用。

## 保留电脑皮肤，只调整手机

在手机 **设置 → 通用设置 → 移动页面模块 → 管理** 中找到皮肤对应的客户端模块；若它是可选项，可取消勾选并保存。选择只作用于当前配对设备，不卸载电脑插件、不修改其他设备，也不会自动刷新会话。下次手动重新打开或刷新页面才生效。

保存时若提示依赖冲突，保留所需模块，或同时取消不需要的依赖方；不能排除启动必需模块。手机的“恢复默认”会重新使用电脑默认选择，不表示恢复为“加载全部”。完整规则见[模块管理](CLIENT_MODULES.md)。

## 背景不显示时如何判断

- 先核对正在运行的插件、App 和皮肤版本；插件与 App 版本不必相同。
- 只在本设备不加载皮肤，手动重新打开后比较会话、输入栏和侧栏。恢复正常说明需要检查双方样式与挂载位置，不表示网络或配对失效。
- 先与电脑上的原生布局对照。开发者还可在已认证移动 Origin 打开 `/?frontend=stock` 作布局诊断；它保留 Gateway 认证与 HTTPS 检查，但绕过移动增强和模块选择，部分 API 操作可能被拒绝，不能代替正常移动入口。
- 若原生布局有背景而移动布局没有，检查皮肤背景的挂载容器及其对非原生布局的回退逻辑；单纯放行 WebSocket、重装 APK 或把全部容器设为透明不能保证修复。
- 侧栏透底、文字阴影难读和轨迹空白应分别排查，不能都归为“少了一张背景图”。轨迹空白时还需检查首个客户端异常、实际布局尺寸和是否加载了相应模块；仅从静态截图不能判断是渲染异常、遮挡还是连接问题。

例如 `maid-atelier` 0.1.7 发布包的背景依赖原生 `centerCol` 容器；皮肤仓库源码中的非原生布局回退不代表已安装包包含相同修正。DSH Mobile 不伪造这个类名或移动皮肤节点。支持移动布局的皮肤可以利用现有 `[data-pane="conversation"]`、`[data-pane="sidebar"]` 标记定位自己的装饰，或使用 DSH 公共主题变量；皮肤仍需自行处理尺寸、层叠、关闭清理和明暗主题，装饰不得遮挡文字或点击区域。本指南不表示整套皮肤已完成兼容验收。参见 [#202](https://github.com/saya-ch/dsh-mobile/issues/202)。

在 DSH 0.2.0-rc.2、Mobile 0.6.4 与正式 npm `maid-atelier` 0.1.7 的隔离组合中，已复现深蓝侧栏透底、深色文字难读、背景缺失和有内容会话的轨迹空白。轨迹数据没有丢失：皮肤的宽泛根布局规则把移动容器改为纵向 Flex，内容区域高度缩为 0。插件 0.6.5 保护自有根容器的 Grid 几何规则，修复该轨迹空白，不改皮肤配色、阴影或装饰挂载。

该皮肤把浅色侧栏文字绑定到原生 `sidebarCol`；移动布局没有该节点。缺失背景及部分文字对比度仍需皮肤适配，不能视为已随轨迹修复解决。按上面的设备模块选择排除皮肤后，移动页面可恢复默认样式，电脑皮肤保持。插件 0.6.4 及更早版本不包含这项布局保护。
