Skip to content

CL-5860: responsive shell layout - #45

Merged
TheGreatAxios merged 1 commit into
mainfrom
cl-5860-shell-responsive-layout
Aug 10, 2026
Merged

CL-5860: responsive shell layout#45
TheGreatAxios merged 1 commit into
mainfrom
cl-5860-shell-responsive-layout

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Closes CL-5860

Changes

Layout-only responsive behavior for the four-column shell. No IA changes.

Breakpoints (unchanged boundaries, new predicates)

  • expanded (>1100px): rail + contextual column + canvas — unchanged
  • compact (700–1100px): rail + contextual column, canvas hidden — unchanged
  • narrow (<700px): rail icon-only + contextual as overlay drawer (new)

What changed

  • Contextual panel → drawer (contextualPanelIsDrawer): below the narrow breakpoint the panel leaves the flex flow entirely and slides in as a fixed overlay from the left, backed by a dimming backdrop that dismisses on click. It never permanently steals width from the main pane. A floating trigger button (PanelLeft icon) appears in the main pane top-left corner.
  • Rail → icon-only (railShowLabels): in narrow mode the rail drops caption labels but keeps every destination — items collapse, not removed. The showLabels prop is threaded through RailSidebarRail.
  • No horizontal scroll: verified at 1280px (expanded), 1024px (compact), and 600px (narrow). The shell-frame carries overflow: hidden and flex children use min-width: 0; the canvas column is gated to expanded-only and the contextual panel is either inline (flex item) or a fixed overlay — neither adds to the document scroll width.

Smoke checklist (documented in breakpoints.ts)

  • 1280px — rail + contextual inline column + canvas toggle available
  • 1024px — rail + contextual inline column, canvas hidden
  • 600px — rail icon-only + contextual drawer overlay, no canvas

Test coverage

New breakpoints.test.ts covers all three modes for each predicate plus the width-boundary mapping. All 6 tests pass; existing rail tests still pass.

Contextual panel becomes an overlay drawer below the narrow breakpoint
(<700px) instead of being hidden, the rail collapses to icon-only, and
the canvas/column visibility is unchanged. Adds breakpoint predicates
(railShowLabels, contextualPanelIsDrawer) with unit tests covering all
three modes and the 1280/1024/600 width boundaries.

Closes CL-5860
@TheGreatAxios
TheGreatAxios merged commit 33a1f7c into main Aug 10, 2026
2 checks passed
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