Skip to content

host: expand isolated view to full width with floating top bar#4626

Open
christse wants to merge 1 commit intomainfrom
host-expanded-isolated
Open

host: expand isolated view to full width with floating top bar#4626
christse wants to merge 1 commit intomainfrom
host-expanded-isolated

Conversation

@christse
Copy link
Copy Markdown

@christse christse commented May 1, 2026

Demo: https://screen.studio/share/zXdc2bHg

Adds an "expand" toggle on the top stack-item's CardHeader that morphs the card to full width below a floating top bar. The bar gains glass- morphism while expanded and the CardHeader portals into a center pill in the bar (replacing the inline header). View-transition pins the bar across the morph so the expand/collapse animates as a single shape.

Positioning is driven by a single CSS variable, --stack-padding-top (item-height + 2 × spacing), shared by:

  • .submode-layout-top-bar height (locked, so portaled content can't push it taller)
  • .operator-mode-stack padding-top when an item is expanded (forced full value, overriding stack-medium/small-padding-top reductions that are correct for the buried-stack visual but not when expanded)
  • .item.expanded inset: 0 of .inner (which sits at y=stack-padding-top)

Result: card top sits flush at bar bottom — pixel-identical to host-mode's in-flow card top. No calc(100vh - X), no JS measurement, no !important.

Buried siblings fade when a top card is expanded; neighbor-stack-trigger arrows hide; cards-grid (Workspace "All Cards") opts out of expand since its child tile overlays would overlap. Per-card expand intent persists on operatorModeStateService (keyed by stack-item id) so it survives buries and restores when the card pops back to the top.

Adds an "expand" toggle on the top stack-item's CardHeader that morphs
the card to full width below a floating top bar. The bar gains glass-
morphism while expanded and the CardHeader portals into a center pill
in the bar (replacing the inline header). View-transition pins the bar
across the morph so the expand/collapse animates as a single shape.

Positioning is driven by a single CSS variable, --stack-padding-top
(item-height + 2 × spacing), shared by:
  * .submode-layout-top-bar height (locked, so portaled content can't
    push it taller)
  * .operator-mode-stack padding-top when an item is expanded (forced
    full value, overriding stack-medium/small-padding-top reductions
    that are correct for the buried-stack visual but not when expanded)
  * .item.expanded inset: 0 of .inner (which sits at y=stack-padding-top)

Result: card top sits flush at bar bottom — pixel-identical to host-mode's
in-flow card top. No calc(100vh - X), no JS measurement, no !important.

Buried siblings fade when a top card is expanded; neighbor-stack-trigger
arrows hide; cards-grid (Workspace "All Cards") opts out of expand since
its child tile overlays would overlap. Per-card expand intent persists on
operatorModeStateService (keyed by stack-item id) so it survives buries
and restores when the card pops back to the top.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@christse christse requested a review from burieberry May 1, 2026 19:06
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

Preview deployments

Host Test Results

    1 files      1 suites   1h 55m 42s ⏱️
2 562 tests 2 547 ✅ 15 💤 0 ❌
2 581 runs  2 566 ✅ 15 💤 0 ❌

Results for commit 59aa430.

Realm Server Test Results

    1 files      1 suites   16m 31s ⏱️
1 204 tests 1 204 ✅ 0 💤 0 ❌
1 276 runs  1 276 ✅ 0 💤 0 ❌

Results for commit 59aa430.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant