#50503·supabase

www: closed navbar mega-menu dropdown leaves an invisible layer that blocks clicks/text selection beneath the nav

Author: htmujahidCreated Sep 17, 2026Updated Sep 17, 2026
Labelsbugsupabase.compr-openedexternal-issue

Bug report

  • I confirm this is a bug with Supabase, not with my own application.
  • I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug

On the marketing site (supabase.com), opening one of the navbar mega-menu dropdowns (Product / Developers / Solutions) and then closing it leaves an invisible element sitting over the page directly below the nav. Even though the dropdown is visually closed, that element keeps intercepting pointer input, so content underneath it becomes unresponsive:

  • Hero heading text can no longer be selected.
  • The "Start your project" and "Request a demo" buttons stop responding to clicks.

Inspecting the click target confirms the click lands on <div class="absolute top-full flex justify-center inset-x-0"> (the navigation-menu viewport container) instead of the button.

To Reproduce

  1. Go to https://supabase.com on desktop.
  2. Hover/click Product in the navbar so the mega-menu opens.
  3. Move the mouse away (or press Esc) so the dropdown closes.
  4. Try to select the hero heading text, or click "Start your project".
  5. Observe: text cannot be selected and the button does not respond. In DevTools, document.elementFromPoint(...) over the button returns the viewport container div rather than the button.

Expected behavior

Once a dropdown is closed, the area beneath the nav should be fully interactive again — hero text selectable and CTA buttons clickable immediately after close.

Screenshots

https://github.com/user-attachments/assets/8a73464d-0d25-497f-8888-ce28e73aee97

System information

  • OS:
  • Browser:
  • Site: supabase.com (apps/www), desktop viewport

Additional context

Root cause: apps/www/components/Nav/index.tsx renders NavigationMenuViewport with forceMount so that switching between two open dropdowns can animate smoothly instead of remounting. As a result, the viewport's wrapper <div> never unmounts on close (unlike shadcn/ui's default usage, which unmounts). Nothing marks that permanently-mounted wrapper as non-interactive, so it silently sits on top of the page and swallows clicks and selection.

Fix: I've opened #50384, which gives the wrapper pointer-events-none and the actual visible dropdown box pointer-events-auto. It's a 2-line, apps/www-only change — the shared packages/ui primitive and other consumers (apps/design-system, apps/kb) rely on the default unmount-on-close behavior and are unaffected. Open/close and switch-between-dropdown animations are unchanged.

PR: https://github.com/supabase/supabase/pull/50384