Repository navigation
Put the document's title and views on its sheet, and zoom children by default - #507
Conversation
|
Review: Changes needed Direction D lands well and matches the jig: title, actions, status and faces stay on the sheet in every state; expanding is width-only; the long title truncates before the project; Zoom's Blocking
Should fix
Verified OK
Nits: the loading placeholders still reserve a ground-header row in split (acknowledged follow-up). |
adb799b to
c4058cd
Compare
The bar drops its vertical padding and centres 24px controls in 40px, so the divider after the surface toggle spans the bar's full height. The restore toggle loses its resting fill and outline and uses the ghost tier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The bar clips overflow, which cut the coarse-pointer hit-area expansion to the 40px bar. Touch devices now get a bar one coarse target tall plus its hairline; desktop stays at 40px. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…m the default child motion The ground-level room header over Chat goes away in the split workspace. The sheet carries two 40px bars: the Chat toggle, project / title with rename and actions, status and the people here; then Document, Decisions and Build on the paper. Expanding only changes the sheet's width, so the title never disappears. Container queries fold status labels and then all but one face as the bar narrows. Children open with Zoom by default: the child's title, rename and actions join the end of the root's path in the title bar, behind a back arrow and a root crumb, and the views fold away. Lift stays behind the development toggle; its child sheet rises over the views under the root's title bar and carries a title bar of its own. Compact and phones keep the stack bar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Specs that found the title, status or expand control through the old banner or the views bar now use the Document group and title bar. Zoom covers the root's Document view rather than the whole swap stack, Undo sits one stop past the sheet's expand control, and the compact header keeps its icon inside the title group. Presence folds to one face only below 26rem, so a 1280px laptop with the sidebar and Chat keeps faces. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t path, a11y and Lift dimming - A Zoom child's rename rekeys its card, so the remounted title takes the caret back when the save started from its field. - With the root on Decisions or Build, the child's title gives way to a crumb that brings Document back, as the stack bar did, so rename and actions never act on a document that isn't on screen. - The back arrow is a pointer target only; the root crumb is the single Back stop, named "Back to <root>". The child's Document group sits beside the root's instead of inside it. - A covered Lift root's title dims with the rest of its bar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reviewed dynamic owners in workspace.tsx (SurfaceToggle feedback, Chat pane presence) and navigation-shell.tsx (sidebar frame motion) keep the same data flow; the files changed around them for the sheet's title bar and the Undo focus fallback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ecisions Zoom hides the child off Document, so a blank root with open decisions that routed itself to Decisions on arrival hid the child its reader had just opened. The opening route now waits while a child is open; choosing a view still applies. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aecad3e to
f983eff
Compare
Direction D from the doc-header jig: the document's identity moves onto its own sheet, so expanding never hides the title, and children zoom in place by default.
What changes
Two bars inside the sheet (split workspace). The ground-level room header over Chat is gone.
project / Title ▾(rename and the document actions menu, moved from the ground header) … status | people. Full-height dividers, 8px insets and 8px between groups.[data-status-label], for the sync slot in Add Build plan and live sync status to the document toolbar #453 to opt into), then, below 26rem, presence drops to one face and "+N". A 1280px laptop with the sidebar and Chat keeps its faces.Zoom is the default child motion; Lift stays behind the existing toggle (
localStorage["chopin:dev:child-motion"] = "lift"in dev or withVITE_CHILD_MOTION_TOGGLE=on).← project / Root › Child ▾. The child's title, rename and actions belong to the child room and are portalled into the root's path. The views bar folds shut, because a child has no views. If the root is on Decisions or Build, the views stay.Folded in from #497 (closed; its commits are the first two here)
--panel-header-height) with no vertical padding, so dividers run its full height.--panel-toolbar-padding-inline), with compact 24px controls centred in the bar.--control-target-coarse+ edge, so 44pt hit areas aren't clipped.Screenshots (1440×900 unless noted)
Implementation notes
DocumentTitleis extracted fromHeader.Headerremains the compact ground header. The rename focus hand-off still searches.workspace-rootand works from the sheet.overflow-x: auto. The inline rename field fits inside the title slot.getByRole("banner")to theDocument: …group in split tests. Lift tests pin Lift. The compact Zoom view-switch test runs at 600px. Paper-layout asserts both bars are 40px.Follow-ups (not in this PR)
project · syncsubtitle, two faces and ⋯; child: back arrow and "in Root". Phones are unchanged here and keep the stack bar.statusand mark its labels withdata-status-labelso they fold at narrow widths.empty-workspace,workspace-notice) still reserve a ground header row in split.Design-contract review
Renewed in a dedicated commit, as Maggie approved for this pass. The reviewed dynamic owners keep the same data flow:
apps/web/src/workspace.tsx: the SurfaceToggle feedback class and the Chat pane presence class.apps/web/src/navigation-shell.tsx: the sidebar frame motion class. Only the Undo focus fallback selector changed, fromheader button[…]to the Document group.Review fixes
<body>, because the rename rekeys the child's card. The remounted title now takes the caret back. Covered by e2e.aria-current="page"), as the stack bar did. Rename and actions never act on a document the pane isn't showing. Covered by e2e.aria-hidden,tabindex=-1). The root crumb is the single Back stop, named "Back to ". The child'sDocument:group sits beside the root's, not inside it.Verification
bun run types✅,bun test apps/web✅ (the only local failures are from untracked design-jig files), dprint/oxlint/tokens/design-record/impeccable ✅.🤖 Generated with Claude Code