Workspace and plan-page polish: contrast, bylines, reachable sidebars, inline back matter#156
Merged
Merged
Conversation
…, inline back matter Light mode gets real definition: a faintly dark --card-edge outline plus a soft shadow on rows and cards, over a slightly darker page background — the old white-on-white glass edges disappeared entirely. Rows lose their tag chips (the sidebar already filters by tag) and their hover bookmark (drag & drop files rows; the plan page's title bookmark is the click path), and the byline pins to the card's top-right corner instead of drifting wherever the title wrap left it. "Since you last looked" gets room to breathe. Sticky sidebars taller than the viewport used to pin their overflow below the fold where no amount of scrolling could reach it — the workspace sidebar and the document outline are now their own scroll containers. References and attachments move inside the content column, closing out the document after a rule instead of sitting below both columns (where long outlines collided with them). Empty sections are one quiet line, not a padded card. The text-selection target is scoped to an inner wrapper so back matter can't take comment anchors that would never resolve. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
HamptonMakes
added a commit
that referenced
this pull request
Jul 22, 2026
…ative-feel fixes (#155) * Folder navigation polish: spring-loaded tunneling, whole-card rows, native-feel fixes Drag and drop grows Finder semantics: hovering a folder (row, crumb, or sidebar node) mid-drag pulses twice and then tunnels the pane into that folder — prefetched during the dwell, restored if the drag is abandoned, committed with a Turbo visit on drop. The whole pane accepts drops for "file right here"; inner targets win via stopPropagation. Sidebar branches spring open multi-level and snap shut when the cursor leaves. Rows are now fully clickable (stretched title link) and prefetch on hover. Backspace on a plan page goes back to the folder you came from: Turbo never updates document.referrer, so the controller tracks in-app visits itself, and cold opens fall back to the plan's folder in your library instead of the workspace root. Folder.paths_by_id's walk guard is now a real cycle guard, so deeper-than-cap data renders full paths. Native-feel fixes, now a hard requirement in AGENTS.md: stable scrollbar gutter kills the workspace/plan width jiggle; attachments upload in place with an XHR progress bar + Turbo Stream update and toasts instead of a scroll-to-top reload. The save bookmark moves next to the plan title (stamped from outside the broadcast-rendered header), presence avatars link to profiles, tag chips link to search, and the sidebar's hidden filters read as "Show my private plans" / "Show archived". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Workspace and plan-page polish: contrast, bylines, reachable sidebars, inline back matter (#156) Light mode gets real definition: a faintly dark --card-edge outline plus a soft shadow on rows and cards, over a slightly darker page background — the old white-on-white glass edges disappeared entirely. Rows lose their tag chips (the sidebar already filters by tag) and their hover bookmark (drag & drop files rows; the plan page's title bookmark is the click path), and the byline pins to the card's top-right corner instead of drifting wherever the title wrap left it. "Since you last looked" gets room to breathe. Sticky sidebars taller than the viewport used to pin their overflow below the fold where no amount of scrolling could reach it — the workspace sidebar and the document outline are now their own scroll containers. References and attachments move inside the content column, closing out the document after a rule instead of sitting below both columns (where long outlines collided with them). Empty sections are one quiet line, not a padded card. The text-selection target is scoped to an inner wrapper so back matter can't take comment anchors that would never resolve. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Codex review fixes + a drop runway below level contents Abort in-flight uploads when the dropzone controller disconnects: every plan page has the same #plan-attachments target, so a Turbo navigation mid-upload would let plan A's late response replace plan B's section. Stream the attachment and reference counters (footnote header AND the document outline) alongside the section replacement — they were rendered by the redirect these stream responses replaced, and went stale. While a drag is live the workspace pane grows bottom padding and a minimum height: an empty folder — especially one just tunneled into — offered almost nothing to drop on. Padding, not margin, so the runway is inside the pane's drop target. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Deracify the checkbox-sequence spec: wait for the live-update swap to land Toggling a checkbox bumps the revision, and Broadcaster.replace_plan_content answers with a whole-body re-render over the plan's Turbo Stream. wait_for_version only polls the DB, so the spec could grab the second checkbox from the old DOM an instant before the swap landed and click a detached node (StaleElementReferenceError — seen locally once and on CI). The custom coplan-replace-if-clean action stamps the incoming revision on #plan-content-body after swapping, so waiting for that stamp is a race-free signal that the re-render has already happened. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #155 (review round from staging, all eight items in one PR — the logic overlaps heavily).
Workspace
--card-edgeoutline + soft shadow, over a slightly darker page background (#eef0f5). The old white-on-white glass edges gave cards no definition at all in light mode.Sidebars that can actually scroll
A sticky sidebar taller than the viewport pins its overflow below the fold where no amount of page scrolling can reach it. Both the workspace sidebar and the plan page's document outline are now their own scroll containers (thin scrollbar, unchanged look when they fit).
Plan-page back matter
Testing
Full suite: 1312 examples, 0 failures. Row-bookmark system specs rewritten against the plan-page bookmark (save, silent unsave, other-author shelving); references specs updated for the compact empty states.
🤖 Generated with Claude Code