description: "Web GUI 的外壳布局:三栏 AppFrame(右栏作为贴边面板的轨道)、面板几何服务与主题呈现;供窗口外壳的使用者与维护者阅读。"
English | 中文
本包提供 Web GUI 的三栏 AppFrame、左右栏宽度与 ctx.layout 呈现控制。右栏先让步以保护中栏空间,全屏由占用方呈现,框架保留宽屏底层轨道。主题呈现器负责配色、别名 token、正文字号与 document 元数据;布局状态在刷新后重置。
本插件在 root slot 中组合侧边栏、主内容和右栏。侧边栏宽度为 264~420px,默认为 280px,收起后保留 56px 控制栏;窗口宽度低于 1024px 时自动收起,打开右侧面板也会收起手动展开的侧边栏。右侧面板首次打开时使用视口宽度的 45%,之后保留用户的像素宽度偏好,上限为 70%。为给中栏保留 400px,框架先将右侧面板缩减至 300px,再报告空间不足,使占用方将其关闭,最后才进一步压缩中栏。拖动没有过渡延迟;右侧手柄在关闭或全屏时不显示。
全局面板占据 root 作用域的 main keyed slot;conversation 是为会话界面保留的 key。ctx.layout.selectPanel(id) 选中已注册面板,null 则选中会话界面,但不改变当前会话。默认组合不注册任何全局面板。
Windows Electron 的 data-windows-titlebar 标记在所有列上方预留顶栏高度,并移除收起后的侧栏轨道。内容区仅左上角保留 16px 圆角,其余角和内部交界处保持直角。框架发布 --dsh-windows-content-radius 和 --dsh-windows-sidebar-width,供 ui-sidebar-right 的全屏圆角及侧栏避让使用。普通 Web 文档不会获得该标记;macOS 保留其独立布局。
呈现器消费解析后的主题快照,并投影到 document:html { color-scheme } 驱动原生 UA 控件,依据当前配色方案设置 body[data-ds-dark-theme],把主题的别名 token 与 --dsh-content-font-size 设为 body 上的内联变量,并持有一个 <meta name="theme-color">,其内容随计算后的 body 背景色更新。对呈现器执行 dispose(资源释放)时,它会连同其他全局写入一起移除自己的元数据节点。
当布局面不够用时阅读以下页面。它们从框架进入它所渲染的栏与它所呈现的主题。
sidebar 栏及其座位。main 中的 conversation key。rightbar 栏。无。布局外壳管理浏览器查看状态;这里没有任何内容进入模型请求。
无;该包既不组装也不发送提供方请求。
这些限制界定了当前布局行为。它们是当前包约束,不是通用窗口管理器对比或任务积压。
运行时不变式: 不发布伴生入口。外壳中 ctx.layout 背后的浏览状态存储不发出 Cordis 事件;clamp 与轨道的时序由本包各栏与服务规格直接断言。