YiRan0/dsh-mobile-glass
DSH Web mobile adaptation plugin: liquid glass UI, reveal drawer, drag gestures, mobile composer/header fixes. Desktop untouched.
已收录
0
Ui
Bundle 已验证
预览
功能介绍
DSH Web 移动端适配:窄屏下聊天页在上/侧栏在下的 reveal 抽屉、拖动手势、设置面板底部卡片上滑、composer 与头部修复,桌面端零影响。
适合
- 在宽度不超过 1023px 的手机或平板上使用 DSH Web 的用户。
- 需要可拖动 reveal 抽屉及移动端输入框、设置控件的触屏工作流。
- 希望把 DSH Web 添加到主屏幕并缓存静态资源的 PWA 用户。
不适合
- 仅使用桌面的用户收益有限;宽度达到 1024px 后界面不会变化。
- 需要离线访问会话的工作流不适合;离线页不会提供服务器上的会话数据。
- 不愿在卸载后手动注销 Service Worker 或清除站点数据的用户不适合。
- 无法接受真机拖动偶发抖动的触屏工作流不适合。
README
dsh-mobile-glass
DSH Web 移动端适配插件(≤1023px,桌面端 ≥1024px 零影响):聊天页在上/侧栏在下的 reveal 抽屉、拖动手势、设置面板底部卡片上滑、composer 与 header 修复。
功能
- 无底部导航,顶部悬浮玻璃汉堡 ☰ 打开侧栏抽屉(抽屉打开时 ☰ 跟随聊天层右移)。
- 侧栏作为底层 static(永不参与动画),聊天列
translateX右移(reveal)。 - 拖动手势:
setPointerCapture+ rAF 节流 + 方向锁定 + 速度/位移吸附;命中横向可滚动元素(宽表格/代码块)时让位原生横向滚动。 - 用户消息右侧气泡、悬浮圆角自适应输入框:未聚焦为居中紧凑胶囊(不挡聊天),聚焦展开全宽、输入区抬升至约 2.5 行,失焦平滑缩回;输入内容增多时输入区自动增高、完整显示;盾牌/下拉与模型选择器同一行、发送键最右,宽高均 0.32s 平滑过渡。
- 设置面板底部卡片上滑覆盖(
VOzbGW_overlay/panel),导航收成图标栏。 - 头部清理:隐藏 session-log、tabs 与标题对齐、隐藏侧栏自带 toggle、better-sidebar 按钮与 ☰ 对齐。
- PWA:插件自带 Service Worker + 增强 Manifest(Host 侧,零修改 DSH vendor)。
截图
| 移动端主界面 | 侧栏抽屉 |
|---|---|
![]() |
![]() |
| 悬浮输入框 | 设置底部卡片 |
|---|---|
![]() |
![]() |
| 桌面端(零影响) |
|---|
![]() |
安装
dsh plugin --profile web add github:YiRan0/dsh-mobile-glass
安装后重启 dsh web 即可生效。
使用
安装后自动适配移动端,无需额外配置。
PWA(Service Worker + Manifest)
插件 Host 侧通过 webServer 精确路由提供(不修改 DSH 任何 vendor 文件,升级不受影响):
| 路由 | 内容 |
|---|---|
/sw.js |
插件内置 Service Worker(Cache-Control: no-cache,版本更新即时生效) |
/manifest.webmanifest |
增强 Manifest(standalone、主题色、PNG 图标),遮蔽 dist 自带那份 |
/pwa/icon-{192,512,180}.png |
应用图标(assets/pwa/,immutable 缓存) |
首页由 index tap 注入 SW 注册脚本 + apple-touch-icon + theme-color,手机浏览器可”添加到主屏幕”独立运行。
缓存策略
-
/plugins/*?rev=(rev = bundle 内容 SHA-1)与/assets/*(哈希文件名):cache-first + 后台更新——内容寻址 URL,升级/热更新后 rev 变化自动取新,不会吃到陈旧 bundle;解决 DSH 插件体系下每次刷新全量重下(当前约 26MB)的问题,公网链路二次访问秒开。 - 导航:network-first,失败显示内置离线页(不做离线会话——数据在服务器)。
-
/api/*、/plugins/events(SSE/HMR):完全旁路,绝不缓存。 - SW
install时解析首页预缓存插件与静态资源(跳过 >5MB 单文件,超大插件按需缓存)。
维护约定
- 修改缓存策略后 bump
src/pwa.ts的SW_VERSION,浏览器自动更新并清旧缓存。 - 卸载插件后,已注册的 SW 会保留(路由消失但注册在浏览器侧),需手动清除一次:DevTools → Application → Service Workers → Unregister(或清除站点数据)。
已知问题
- 真机拖拽偶发抖动(疑为侧栏
backdrop-filter实时模糊);will-change实验已回退。动画只作用在聊天列。
许可
MIT
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:YiRan0/dsh-mobile-glass。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。




