Skip to content

feat: SW-2120 add gutter and hover/focus reveal to Resizable handle#156

Open
boramyi-ts wants to merge 1 commit into
mainfrom
SW-2120-resizable-gutter-hover
Open

feat: SW-2120 add gutter and hover/focus reveal to Resizable handle#156
boramyi-ts wants to merge 1 commit into
mainfrom
SW-2120-resizable-gutter-hover

Conversation

@boramyi-ts

@boramyi-ts boramyi-ts commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

SW-2120 — Improve Resizable component: gutter + hover/focus interactions

SW-2120

What & why

The Resizable handle was a thin always-on hairline with a tiny grab area. This makes it cleaner at rest and far easier to grab:

  • Wide 12px grab area via a non-layout ::after overlay — the handle can be grabbed anywhere in the gap, not just on the 1px line.
  • Hidden at rest, reveal on interaction — the 1px divider and the optional grip are transparent at rest and reveal on hover / while dragging (border) and on keyboard focus (ring), giving a clear focus affordance.
  • Stays aligned — the handle's layout footprint remains a 1px divider sitting exactly on the panel seam, so the divider, grip, and seam line up in both orientations regardless of the panels' backgrounds.

No API change: ResizableHandle / withHandle are unchanged; a default aria-label="Resize" is added (overridable).

Before — main

Divider and grip always visible; small grab area.

before

After — SW-2120

Clean at rest; divider + grip reveal on hover/focus; wider grab area; aligned on the seam.

after

Testing

  • yarn lint ✓ · yarn typecheck ✓ · yarn test:storybook resizable ✓ (3/3)
  • New Gutter & hover reveal story; assertions cover the 1px on-seam footprint and the 12px non-layout grab overlay.

🤖 Generated with Claude Code

Improve the Resizable handle per SW-2120:

- Wide (12px) transparent grab area via a non-layout ::after overlay, so
  the handle can be grabbed anywhere in the gap, not just on the hairline.
- The 1px divider line and the optional grip are hidden at rest and reveal
  on hover and while dragging (border) and on keyboard focus (ring).
- The handle's layout footprint stays a 1px divider sitting exactly on the
  panel seam, so the divider, grip, and seam all stay aligned in both
  orientations regardless of the panels' backgrounds.

Adds a "Gutter & hover reveal" story and updates assertions to cover the
1px on-seam footprint plus the 12px non-layout grab overlay.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@boramyi-ts boramyi-ts requested review from a team as code owners June 24, 2026 18:48
@boramyi-ts boramyi-ts temporarily deployed to artifactory-prod June 24, 2026 18:48 — with GitHub Actions Inactive
@vercel

vercel Bot commented Jun 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ts-lib-ui-kit-storybook Ready Ready Preview, Comment Jun 24, 2026 9:33pm

Request Review

@github-actions

Copy link
Copy Markdown

Coverage Report

Status Category Percentage Covered / Total
🟢 Lines 94.75% (🎯 83%)
🟰 ±0%
20642 / 21785
🟢 Statements 94.75% (🎯 83%)
🟰 ±0%
20642 / 21785
🟢 Functions 93.58% (🎯 74%)
🟰 ±0%
919 / 982
🟢 Branches 88.75% (🎯 81%)
🟰 ±0%
3772 / 4250
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/components/ui/resizable.tsx 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
Generated in workflow #855 for commit 847819e by the Vitest Coverage Report Action

@owilliams-tetrascience owilliams-tetrascience left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good! dont forget to add the "zephyr_sync" label since this adds a new test.

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.

2 participants