description: "Shell layout for the Web GUI: the three-column AppFrame with drag handles, concession behavior, the panel-geometry service, and theme presentation; for users and maintainers of the window chrome."
English | 中文
This package provides the shell layout of the Web GUI: a three-column AppFrame with resizable sidebar and details panels, a concession chain that shrinks the details column and then auto-closes it when space runs out, and the ctx.layout panel-geometry service other plugins call to open or close the details column. It also seats the theme presenter, which projects the resolved color scheme, alias tokens, content font size, and theme-color metadata onto the document. Choose it for the standard window chrome; panel geometry is transient and resets on reload.
Mount this plugin at the root slot; it then renders the app frame around whatever occupies the sidebar, conversation, and details columns. Users resize the sidebar by dragging its invisible hit strip and the details panel by dragging its floating pill; when the window narrows, only details shrinks, then auto-closes. A closed sidebar retains a 56px control rail; details closes to zero width.
The presenter consumes resolved theme snapshots and projects them onto the document: html { color-scheme } for native UA chrome, body[data-ds-dark-theme] from the active color scheme, the theme's alias tokens and --dsh-content-font-size as inline variables on body, and one owned <meta name="theme-color"> whose content follows the computed body background. Disposing the presenter removes its metadata node with its other global writes.
Read these pages when the layout surface is not enough. They move from the frame to the columns it renders and the theme it presents.
sidebar column and its seats.conversation and details columns.None, as the layout shell manages browser viewing state; nothing here reaches a model request.
None; this package neither assembles nor sends a provider request.
These limits define the current layout behavior. They are current package constraints, not a general window-manager comparison or a task backlog.
Runtime invariant: No companion is published. The shell viewing-state store behind ctx.layout emits no cordis events; clamp/prune/concession-chain sequencing is asserted directly by this package's columns and service specs.