Skip to content

Conversation

@jakebodea
Copy link
Owner

Summary

  • Refactored theme toggle to use Radix DropdownMenu instead of custom dropdown, getting click-outside, escape, focus management, and keyboard nav for free
  • Fixed tooltip overlap — "press t" tooltip is suppressed when dropdown is open, handled internally by ThemeToggle via a shortcut prop instead of state lifting through TopNav
  • Added mouse-leave auto-close with 100ms buffer on both trigger and portalled content
  • Replaced all import * as React with direct named imports across the codebase (15 files)

Test plan

  • Desktop: click theme icon opens dropdown, selecting an option changes theme
  • Desktop: hovering theme icon shows "press t" tooltip; opening dropdown hides it
  • Desktop: mouse leaving dropdown area auto-closes after brief delay
  • Desktop: pressing t quick-toggles between light/dark
  • Desktop: escape key closes dropdown
  • Mobile: theme toggle works without tooltip or dropdown issues

🤖 Generated with Claude Code

@cursor
Copy link

cursor bot commented Feb 8, 2026

You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 11.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@vercel
Copy link
Contributor

vercel bot commented Feb 8, 2026

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

Project Deployment Actions Updated (UTC)
personal-website Ready Ready Preview, Comment Feb 8, 2026 4:34am

jakebodea and others added 4 commits February 7, 2026 20:33
…t imports

Fix the "press t" tooltip showing behind the theme dropdown by passing
dropdown open state to ShortcutTooltip's new disabled prop. Also replace
all `import * as React from "react"` with direct named imports across
the codebase.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Also fix tooltip disabled behavior to keep Tooltip mounted (using
open={false}) instead of unmounting it, which was causing the dropdown
to reset its state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace custom dropdown implementation with Radix DropdownMenu, which
natively handles click-outside, escape key, focus management, and
keyboard navigation. ThemeToggle now owns its tooltip internally via a
shortcut prop, eliminating state lifting through TopNav.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Bump dropdown z-index above nav, use subtle muted hover instead of
saturated accent, align dropdown to start (left) of trigger, and
disable modal overlay for proper pointer events.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jakebodea jakebodea force-pushed the fix/theme-dropdown-tooltip branch from 2e5501d to 73978bf Compare February 8, 2026 04:33
@jakebodea jakebodea merged commit dbb33a5 into dev Feb 8, 2026
3 checks passed
@jakebodea jakebodea deleted the fix/theme-dropdown-tooltip branch February 8, 2026 04:37
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