Skip to content

Add deep select: Cmd+hover to pierce through overlays and wrappers#119

Open
stevysmith wants to merge 2 commits intobenjitaylor:mainfrom
stevysmith:feat/deep-select
Open

Add deep select: Cmd+hover to pierce through overlays and wrappers#119
stevysmith wants to merge 2 commits intobenjitaylor:mainfrom
stevysmith:feat/deep-select

Conversation

@stevysmith
Copy link
Contributor

@stevysmith stevysmith commented Mar 2, 2026

Hold Cmd (Mac) / Ctrl (Win) while hovering to scan through invisible overlays, empty container wrappers, and opacity:0 animation ghosts to select the actual content underneath.

How it works

Two-pass pierce algorithm:

  1. Find elements with direct text content (skips empty wrappers)
  2. Smallest visible element fallback (catches visual-only elements)

Also improves element identification: direct text content is now checked before class names, so "$54" shows instead of "styles.price".

Visual indicators

  • Dashed highlight border when pierce mode finds a different element underneath
  • When pierce finds the same element as normal hover, the solid border stays - communicating "you are already at the right element"

Instant response

Pressing Cmd/Ctrl instantly re-evaluates the hover target via keydown/keyup listeners — no mouse movement required. Previously only mousemove triggered evaluation, causing a perceived delay.

Feature demo

Animated demo on the features page showing a landing page hero wrapped in a motion.div animation container:

  • Hero content entrance animation (fade up + scale) demonstrates why the wrapper exists
  • Normal hover selects the entire div.motion-container wrapper
  • Deep select pierces through to the actual button "Get Started" CTA

Keyboard shortcut entry added to the shortcuts table.

@vercel
Copy link

vercel bot commented Mar 2, 2026

@stevysmith is attempting to deploy a commit to the Benji Taylor's Projects Team on Vercel.

A member of the Team first needs to authorize it.

Hold Cmd (Mac) / Ctrl (Win) while hovering to scan through invisible
overlays, empty container wrappers, and opacity:0 animation ghosts to
select the actual content underneath.

Two-pass pierce algorithm:
1. Find elements with direct text content (skips empty wrappers)
2. Smallest visible element fallback (catches visual-only elements)

Also improves element identification: direct text content is now
checked before class names, so "$54" shows instead of "styles.price".

Visual indicators: dashed highlight border and "⇣ deep select" label
in the hover tooltip when pierce mode is active.

Adds animated demo to the features page with keyboard shortcut entry.
alexgorbatchev added a commit to alexgorbatchev/agentation that referenced this pull request Mar 10, 2026
…ce overlays)

Cherry-pick of benjitaylor#119 by stevysmith.
Adds Cmd+hover to pierce through overlays, empty wrappers, and opacity:0 elements.
alexgorbatchev added a commit to alexgorbatchev/agentation that referenced this pull request Mar 10, 2026
…ce overlays)

Cherry-pick of benjitaylor#119 by stevysmith.
Adds Cmd+hover to pierce through overlays, empty wrappers, and opacity:0 elements.
alexgorbatchev added a commit to alexgorbatchev/agentation that referenced this pull request Mar 10, 2026
alexgorbatchev added a commit to alexgorbatchev/agentation that referenced this pull request Mar 10, 2026
- deep-select.test.tsx: 13 tests for pierce mode behavior
- element-identification.test.ts: 9 tests for direct text content
- react-detection.test.ts: tests for Remotion/RefForwarding skip patterns
- Add test script to package.json

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…gn demo

- Fix delay: add keydown/keyup listeners so pressing Cmd instantly
  re-evaluates hover without requiring mouse movement
- Same element: when pierce finds same element as normal hover,
  suppress pierce indicator (solid border stays)
- Remove arrow label: delete "⇣ deep select" text and
  hoverPierceIndicator CSS — dashed outline is sufficient
- Redesign demo: replace inbox scenario with landing page hero +
  motion.div wrapper, gradient CTA, social proof, entrance animation
- Add dual cursor (crosshair/pointer) and human-like popup interaction
- Add <motion.div> label hint on wrapper boundary
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